#include <tree_sitter/parser.h>

#if defined(__GNUC__) || defined(__clang__)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
#endif

#ifdef _MSC_VER
#pragma optimize("", off)
#elif defined(__clang__)
#pragma clang optimize off
#elif defined(__GNUC__)
#pragma GCC optimize ("O0")
#endif

#define LANGUAGE_VERSION 14
#define STATE_COUNT 685
#define LARGE_STATE_COUNT 2
#define SYMBOL_COUNT 118
#define ALIAS_COUNT 0
#define TOKEN_COUNT 72
#define EXTERNAL_TOKEN_COUNT 0
#define FIELD_COUNT 8
#define MAX_ALIAS_SEQUENCE_LENGTH 9
#define PRODUCTION_ID_COUNT 14

enum {
  anon_sym_ATclass = 1,
  anon_sym_COLON = 2,
  anon_sym_ATtype = 3,
  anon_sym_COMMA = 4,
  anon_sym_ATparam = 5,
  anon_sym_DOT_DOT_DOT = 6,
  anon_sym_QMARK = 7,
  anon_sym_ATalias = 8,
  anon_sym_ATreturn = 9,
  anon_sym_ATfield = 10,
  anon_sym_ATpublic = 11,
  anon_sym_ATprotected = 12,
  anon_sym_ATprivate = 13,
  anon_sym_ATgeneric = 14,
  anon_sym_ATvararg = 15,
  anon_sym_ATdiagnostic = 16,
  anon_sym_ATmeta = 17,
  anon_sym_ATmodule = 18,
  anon_sym_ATsource = 19,
  anon_sym_DOT = 20,
  anon_sym_ATversion = 21,
  anon_sym_5_DOT1 = 22,
  anon_sym_5_DOT2 = 23,
  anon_sym_5_DOT3 = 24,
  anon_sym_5_DOT4 = 25,
  anon_sym_JIT = 26,
  anon_sym_ATpackage = 27,
  anon_sym_AToperator = 28,
  anon_sym_LPAREN = 29,
  anon_sym_RPAREN = 30,
  anon_sym_ATnodiscard = 31,
  anon_sym_ATdeprecated = 32,
  anon_sym_ATcast = 33,
  anon_sym_ATasync = 34,
  anon_sym_AToverload = 35,
  anon_sym_ATenum = 36,
  anon_sym_ATlanguage = 37,
  anon_sym_ATsee = 38,
  anon_sym_public = 39,
  anon_sym_protected = 40,
  anon_sym_private = 41,
  anon_sym_AT = 42,
  anon_sym_extends = 43,
  sym_comment = 44,
  anon_sym_LBRACK = 45,
  anon_sym_RBRACK = 46,
  anon_sym_table = 47,
  anon_sym_LT = 48,
  anon_sym_GT = 49,
  anon_sym_LBRACE = 50,
  anon_sym_RBRACK2 = 51,
  anon_sym_RBRACE = 52,
  anon_sym_PIPE = 53,
  anon_sym_fun = 54,
  anon_sym_function = 55,
  anon_sym_self = 56,
  anon_sym_POUND = 57,
  anon_sym_DQUOTE = 58,
  aux_sym_literal_type_token1 = 59,
  anon_sym_any = 60,
  anon_sym_boolean = 61,
  anon_sym_CFunction = 62,
  anon_sym_nil = 63,
  anon_sym_number = 64,
  anon_sym_string = 65,
  anon_sym_userdata = 66,
  anon_sym_void = 67,
  sym_string = 68,
  sym_number = 69,
  sym_identifier = 70,
  sym_diagnostic_identifier = 71,
  sym_documentation = 72,
  sym_class_annotation = 73,
  sym_type_annotation = 74,
  sym_param_annotation = 75,
  sym_alias_annotation = 76,
  sym_return_annotation = 77,
  sym_field_annotation = 78,
  sym_qualifier_annotation = 79,
  sym_generic_annotation = 80,
  sym_vararg_annotation = 81,
  sym_diagnostic_annotation = 82,
  sym_meta_annotation = 83,
  sym_module_annotation = 84,
  sym_source_annotation = 85,
  sym_version_annotation = 86,
  sym_package_annotation = 87,
  sym_operator_annotation = 88,
  sym_nodiscard_annotation = 89,
  sym_deprecated_annotation = 90,
  sym_cast_annotation = 91,
  sym_async_annotation = 92,
  sym_overload_annotation = 93,
  sym_enum_annotation = 94,
  sym_language_injection = 95,
  sym_see_reference = 96,
  sym_qualifier = 97,
  sym_class_at_comment = 98,
  sym_at_comment = 99,
  sym_type = 100,
  sym_array_type = 101,
  sym_table_type = 102,
  sym_table_literal_type = 103,
  sym_union_type = 104,
  sym_parenthesized_type = 105,
  sym_function_type = 106,
  sym_parameter = 107,
  sym_member_type = 108,
  sym_optional_type = 109,
  sym_literal_type = 110,
  sym_builtin_type = 111,
  sym_positional_field = 112,
  aux_sym_type_annotation_repeat1 = 113,
  aux_sym_diagnostic_annotation_repeat1 = 114,
  aux_sym_table_literal_type_repeat1 = 115,
  aux_sym_function_type_repeat1 = 116,
  aux_sym_function_type_repeat2 = 117,
};

static const char * const ts_symbol_names[] = {
  [ts_builtin_sym_end] = "end",
  [anon_sym_ATclass] = "@class",
  [anon_sym_COLON] = ":",
  [anon_sym_ATtype] = "@type",
  [anon_sym_COMMA] = ",",
  [anon_sym_ATparam] = "@param",
  [anon_sym_DOT_DOT_DOT] = "...",
  [anon_sym_QMARK] = "\?",
  [anon_sym_ATalias] = "@alias",
  [anon_sym_ATreturn] = "@return",
  [anon_sym_ATfield] = "@field",
  [anon_sym_ATpublic] = "@public",
  [anon_sym_ATprotected] = "@protected",
  [anon_sym_ATprivate] = "@private",
  [anon_sym_ATgeneric] = "@generic",
  [anon_sym_ATvararg] = "@vararg",
  [anon_sym_ATdiagnostic] = "@diagnostic",
  [anon_sym_ATmeta] = "@meta",
  [anon_sym_ATmodule] = "@module",
  [anon_sym_ATsource] = "@source",
  [anon_sym_DOT] = ".",
  [anon_sym_ATversion] = "@version",
  [anon_sym_5_DOT1] = "5.1",
  [anon_sym_5_DOT2] = "5.2",
  [anon_sym_5_DOT3] = "5.3",
  [anon_sym_5_DOT4] = "5.4",
  [anon_sym_JIT] = "JIT",
  [anon_sym_ATpackage] = "@package",
  [anon_sym_AToperator] = "@operator",
  [anon_sym_LPAREN] = "(",
  [anon_sym_RPAREN] = ")",
  [anon_sym_ATnodiscard] = "@nodiscard",
  [anon_sym_ATdeprecated] = "@deprecated",
  [anon_sym_ATcast] = "@cast",
  [anon_sym_ATasync] = "@async",
  [anon_sym_AToverload] = "@overload",
  [anon_sym_ATenum] = "@enum",
  [anon_sym_ATlanguage] = "@language",
  [anon_sym_ATsee] = "@see",
  [anon_sym_public] = "public",
  [anon_sym_protected] = "protected",
  [anon_sym_private] = "private",
  [anon_sym_AT] = "@",
  [anon_sym_extends] = "extends",
  [sym_comment] = "comment",
  [anon_sym_LBRACK] = "[",
  [anon_sym_RBRACK] = "]",
  [anon_sym_table] = "table",
  [anon_sym_LT] = "<",
  [anon_sym_GT] = ">",
  [anon_sym_LBRACE] = "{",
  [anon_sym_RBRACK2] = "]",
  [anon_sym_RBRACE] = "}",
  [anon_sym_PIPE] = "|",
  [anon_sym_fun] = "fun",
  [anon_sym_function] = "function",
  [anon_sym_self] = "self",
  [anon_sym_POUND] = "#",
  [anon_sym_DQUOTE] = "\"",
  [aux_sym_literal_type_token1] = "literal_type_token1",
  [anon_sym_any] = "any",
  [anon_sym_boolean] = "boolean",
  [anon_sym_CFunction] = "CFunction",
  [anon_sym_nil] = "nil",
  [anon_sym_number] = "number",
  [anon_sym_string] = "string",
  [anon_sym_userdata] = "userdata",
  [anon_sym_void] = "void",
  [sym_string] = "string",
  [sym_number] = "number",
  [sym_identifier] = "identifier",
  [sym_diagnostic_identifier] = "diagnostic_identifier",
  [sym_documentation] = "documentation",
  [sym_class_annotation] = "class_annotation",
  [sym_type_annotation] = "type_annotation",
  [sym_param_annotation] = "param_annotation",
  [sym_alias_annotation] = "alias_annotation",
  [sym_return_annotation] = "return_annotation",
  [sym_field_annotation] = "field_annotation",
  [sym_qualifier_annotation] = "qualifier_annotation",
  [sym_generic_annotation] = "generic_annotation",
  [sym_vararg_annotation] = "vararg_annotation",
  [sym_diagnostic_annotation] = "diagnostic_annotation",
  [sym_meta_annotation] = "meta_annotation",
  [sym_module_annotation] = "module_annotation",
  [sym_source_annotation] = "source_annotation",
  [sym_version_annotation] = "version_annotation",
  [sym_package_annotation] = "package_annotation",
  [sym_operator_annotation] = "operator_annotation",
  [sym_nodiscard_annotation] = "nodiscard_annotation",
  [sym_deprecated_annotation] = "deprecated_annotation",
  [sym_cast_annotation] = "cast_annotation",
  [sym_async_annotation] = "async_annotation",
  [sym_overload_annotation] = "overload_annotation",
  [sym_enum_annotation] = "enum_annotation",
  [sym_language_injection] = "language_injection",
  [sym_see_reference] = "see_reference",
  [sym_qualifier] = "qualifier",
  [sym_class_at_comment] = "class_at_comment",
  [sym_at_comment] = "at_comment",
  [sym_type] = "type",
  [sym_array_type] = "array_type",
  [sym_table_type] = "table_type",
  [sym_table_literal_type] = "table_literal_type",
  [sym_union_type] = "union_type",
  [sym_parenthesized_type] = "parenthesized_type",
  [sym_function_type] = "function_type",
  [sym_parameter] = "parameter",
  [sym_member_type] = "member_type",
  [sym_optional_type] = "optional_type",
  [sym_literal_type] = "literal_type",
  [sym_builtin_type] = "builtin_type",
  [sym_positional_field] = "positional_field",
  [aux_sym_type_annotation_repeat1] = "type_annotation_repeat1",
  [aux_sym_diagnostic_annotation_repeat1] = "diagnostic_annotation_repeat1",
  [aux_sym_table_literal_type_repeat1] = "table_literal_type_repeat1",
  [aux_sym_function_type_repeat1] = "function_type_repeat1",
  [aux_sym_function_type_repeat2] = "function_type_repeat2",
};

static const TSSymbol ts_symbol_map[] = {
  [ts_builtin_sym_end] = ts_builtin_sym_end,
  [anon_sym_ATclass] = anon_sym_ATclass,
  [anon_sym_COLON] = anon_sym_COLON,
  [anon_sym_ATtype] = anon_sym_ATtype,
  [anon_sym_COMMA] = anon_sym_COMMA,
  [anon_sym_ATparam] = anon_sym_ATparam,
  [anon_sym_DOT_DOT_DOT] = anon_sym_DOT_DOT_DOT,
  [anon_sym_QMARK] = anon_sym_QMARK,
  [anon_sym_ATalias] = anon_sym_ATalias,
  [anon_sym_ATreturn] = anon_sym_ATreturn,
  [anon_sym_ATfield] = anon_sym_ATfield,
  [anon_sym_ATpublic] = anon_sym_ATpublic,
  [anon_sym_ATprotected] = anon_sym_ATprotected,
  [anon_sym_ATprivate] = anon_sym_ATprivate,
  [anon_sym_ATgeneric] = anon_sym_ATgeneric,
  [anon_sym_ATvararg] = anon_sym_ATvararg,
  [anon_sym_ATdiagnostic] = anon_sym_ATdiagnostic,
  [anon_sym_ATmeta] = anon_sym_ATmeta,
  [anon_sym_ATmodule] = anon_sym_ATmodule,
  [anon_sym_ATsource] = anon_sym_ATsource,
  [anon_sym_DOT] = anon_sym_DOT,
  [anon_sym_ATversion] = anon_sym_ATversion,
  [anon_sym_5_DOT1] = anon_sym_5_DOT1,
  [anon_sym_5_DOT2] = anon_sym_5_DOT2,
  [anon_sym_5_DOT3] = anon_sym_5_DOT3,
  [anon_sym_5_DOT4] = anon_sym_5_DOT4,
  [anon_sym_JIT] = anon_sym_JIT,
  [anon_sym_ATpackage] = anon_sym_ATpackage,
  [anon_sym_AToperator] = anon_sym_AToperator,
  [anon_sym_LPAREN] = anon_sym_LPAREN,
  [anon_sym_RPAREN] = anon_sym_RPAREN,
  [anon_sym_ATnodiscard] = anon_sym_ATnodiscard,
  [anon_sym_ATdeprecated] = anon_sym_ATdeprecated,
  [anon_sym_ATcast] = anon_sym_ATcast,
  [anon_sym_ATasync] = anon_sym_ATasync,
  [anon_sym_AToverload] = anon_sym_AToverload,
  [anon_sym_ATenum] = anon_sym_ATenum,
  [anon_sym_ATlanguage] = anon_sym_ATlanguage,
  [anon_sym_ATsee] = anon_sym_ATsee,
  [anon_sym_public] = anon_sym_public,
  [anon_sym_protected] = anon_sym_protected,
  [anon_sym_private] = anon_sym_private,
  [anon_sym_AT] = anon_sym_AT,
  [anon_sym_extends] = anon_sym_extends,
  [sym_comment] = sym_comment,
  [anon_sym_LBRACK] = anon_sym_LBRACK,
  [anon_sym_RBRACK] = anon_sym_RBRACK,
  [anon_sym_table] = anon_sym_table,
  [anon_sym_LT] = anon_sym_LT,
  [anon_sym_GT] = anon_sym_GT,
  [anon_sym_LBRACE] = anon_sym_LBRACE,
  [anon_sym_RBRACK2] = anon_sym_RBRACK,
  [anon_sym_RBRACE] = anon_sym_RBRACE,
  [anon_sym_PIPE] = anon_sym_PIPE,
  [anon_sym_fun] = anon_sym_fun,
  [anon_sym_function] = anon_sym_function,
  [anon_sym_self] = anon_sym_self,
  [anon_sym_POUND] = anon_sym_POUND,
  [anon_sym_DQUOTE] = anon_sym_DQUOTE,
  [aux_sym_literal_type_token1] = aux_sym_literal_type_token1,
  [anon_sym_any] = anon_sym_any,
  [anon_sym_boolean] = anon_sym_boolean,
  [anon_sym_CFunction] = anon_sym_CFunction,
  [anon_sym_nil] = anon_sym_nil,
  [anon_sym_number] = anon_sym_number,
  [anon_sym_string] = anon_sym_string,
  [anon_sym_userdata] = anon_sym_userdata,
  [anon_sym_void] = anon_sym_void,
  [sym_string] = sym_string,
  [sym_number] = sym_number,
  [sym_identifier] = sym_identifier,
  [sym_diagnostic_identifier] = sym_diagnostic_identifier,
  [sym_documentation] = sym_documentation,
  [sym_class_annotation] = sym_class_annotation,
  [sym_type_annotation] = sym_type_annotation,
  [sym_param_annotation] = sym_param_annotation,
  [sym_alias_annotation] = sym_alias_annotation,
  [sym_return_annotation] = sym_return_annotation,
  [sym_field_annotation] = sym_field_annotation,
  [sym_qualifier_annotation] = sym_qualifier_annotation,
  [sym_generic_annotation] = sym_generic_annotation,
  [sym_vararg_annotation] = sym_vararg_annotation,
  [sym_diagnostic_annotation] = sym_diagnostic_annotation,
  [sym_meta_annotation] = sym_meta_annotation,
  [sym_module_annotation] = sym_module_annotation,
  [sym_source_annotation] = sym_source_annotation,
  [sym_version_annotation] = sym_version_annotation,
  [sym_package_annotation] = sym_package_annotation,
  [sym_operator_annotation] = sym_operator_annotation,
  [sym_nodiscard_annotation] = sym_nodiscard_annotation,
  [sym_deprecated_annotation] = sym_deprecated_annotation,
  [sym_cast_annotation] = sym_cast_annotation,
  [sym_async_annotation] = sym_async_annotation,
  [sym_overload_annotation] = sym_overload_annotation,
  [sym_enum_annotation] = sym_enum_annotation,
  [sym_language_injection] = sym_language_injection,
  [sym_see_reference] = sym_see_reference,
  [sym_qualifier] = sym_qualifier,
  [sym_class_at_comment] = sym_class_at_comment,
  [sym_at_comment] = sym_at_comment,
  [sym_type] = sym_type,
  [sym_array_type] = sym_array_type,
  [sym_table_type] = sym_table_type,
  [sym_table_literal_type] = sym_table_literal_type,
  [sym_union_type] = sym_union_type,
  [sym_parenthesized_type] = sym_parenthesized_type,
  [sym_function_type] = sym_function_type,
  [sym_parameter] = sym_parameter,
  [sym_member_type] = sym_member_type,
  [sym_optional_type] = sym_optional_type,
  [sym_literal_type] = sym_literal_type,
  [sym_builtin_type] = sym_builtin_type,
  [sym_positional_field] = sym_positional_field,
  [aux_sym_type_annotation_repeat1] = aux_sym_type_annotation_repeat1,
  [aux_sym_diagnostic_annotation_repeat1] = aux_sym_diagnostic_annotation_repeat1,
  [aux_sym_table_literal_type_repeat1] = aux_sym_table_literal_type_repeat1,
  [aux_sym_function_type_repeat1] = aux_sym_function_type_repeat1,
  [aux_sym_function_type_repeat2] = aux_sym_function_type_repeat2,
};

static const TSSymbolMetadata ts_symbol_metadata[] = {
  [ts_builtin_sym_end] = {
    .visible = false,
    .named = true,
  },
  [anon_sym_ATclass] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_COLON] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_ATtype] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_COMMA] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_ATparam] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_DOT_DOT_DOT] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_QMARK] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_ATalias] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_ATreturn] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_ATfield] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_ATpublic] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_ATprotected] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_ATprivate] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_ATgeneric] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_ATvararg] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_ATdiagnostic] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_ATmeta] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_ATmodule] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_ATsource] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_DOT] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_ATversion] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_5_DOT1] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_5_DOT2] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_5_DOT3] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_5_DOT4] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_JIT] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_ATpackage] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_AToperator] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_LPAREN] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_RPAREN] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_ATnodiscard] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_ATdeprecated] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_ATcast] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_ATasync] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_AToverload] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_ATenum] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_ATlanguage] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_ATsee] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_public] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_protected] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_private] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_AT] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_extends] = {
    .visible = true,
    .named = false,
  },
  [sym_comment] = {
    .visible = true,
    .named = true,
  },
  [anon_sym_LBRACK] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_RBRACK] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_table] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_LT] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_GT] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_LBRACE] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_RBRACK2] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_RBRACE] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_PIPE] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_fun] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_function] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_self] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_POUND] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_DQUOTE] = {
    .visible = true,
    .named = false,
  },
  [aux_sym_literal_type_token1] = {
    .visible = false,
    .named = false,
  },
  [anon_sym_any] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_boolean] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_CFunction] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_nil] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_number] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_string] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_userdata] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_void] = {
    .visible = true,
    .named = false,
  },
  [sym_string] = {
    .visible = true,
    .named = true,
  },
  [sym_number] = {
    .visible = true,
    .named = true,
  },
  [sym_identifier] = {
    .visible = true,
    .named = true,
  },
  [sym_diagnostic_identifier] = {
    .visible = true,
    .named = true,
  },
  [sym_documentation] = {
    .visible = true,
    .named = true,
  },
  [sym_class_annotation] = {
    .visible = true,
    .named = true,
  },
  [sym_type_annotation] = {
    .visible = true,
    .named = true,
  },
  [sym_param_annotation] = {
    .visible = true,
    .named = true,
  },
  [sym_alias_annotation] = {
    .visible = true,
    .named = true,
  },
  [sym_return_annotation] = {
    .visible = true,
    .named = true,
  },
  [sym_field_annotation] = {
    .visible = true,
    .named = true,
  },
  [sym_qualifier_annotation] = {
    .visible = true,
    .named = true,
  },
  [sym_generic_annotation] = {
    .visible = true,
    .named = true,
  },
  [sym_vararg_annotation] = {
    .visible = true,
    .named = true,
  },
  [sym_diagnostic_annotation] = {
    .visible = true,
    .named = true,
  },
  [sym_meta_annotation] = {
    .visible = true,
    .named = true,
  },
  [sym_module_annotation] = {
    .visible = true,
    .named = true,
  },
  [sym_source_annotation] = {
    .visible = true,
    .named = true,
  },
  [sym_version_annotation] = {
    .visible = true,
    .named = true,
  },
  [sym_package_annotation] = {
    .visible = true,
    .named = true,
  },
  [sym_operator_annotation] = {
    .visible = true,
    .named = true,
  },
  [sym_nodiscard_annotation] = {
    .visible = true,
    .named = true,
  },
  [sym_deprecated_annotation] = {
    .visible = true,
    .named = true,
  },
  [sym_cast_annotation] = {
    .visible = true,
    .named = true,
  },
  [sym_async_annotation] = {
    .visible = true,
    .named = true,
  },
  [sym_overload_annotation] = {
    .visible = true,
    .named = true,
  },
  [sym_enum_annotation] = {
    .visible = true,
    .named = true,
  },
  [sym_language_injection] = {
    .visible = true,
    .named = true,
  },
  [sym_see_reference] = {
    .visible = true,
    .named = true,
  },
  [sym_qualifier] = {
    .visible = true,
    .named = true,
  },
  [sym_class_at_comment] = {
    .visible = true,
    .named = true,
  },
  [sym_at_comment] = {
    .visible = true,
    .named = true,
  },
  [sym_type] = {
    .visible = false,
    .named = true,
    .supertype = true,
  },
  [sym_array_type] = {
    .visible = true,
    .named = true,
  },
  [sym_table_type] = {
    .visible = true,
    .named = true,
  },
  [sym_table_literal_type] = {
    .visible = true,
    .named = true,
  },
  [sym_union_type] = {
    .visible = true,
    .named = true,
  },
  [sym_parenthesized_type] = {
    .visible = true,
    .named = true,
  },
  [sym_function_type] = {
    .visible = true,
    .named = true,
  },
  [sym_parameter] = {
    .visible = true,
    .named = true,
  },
  [sym_member_type] = {
    .visible = true,
    .named = true,
  },
  [sym_optional_type] = {
    .visible = true,
    .named = true,
  },
  [sym_literal_type] = {
    .visible = true,
    .named = true,
  },
  [sym_builtin_type] = {
    .visible = true,
    .named = true,
  },
  [sym_positional_field] = {
    .visible = true,
    .named = true,
  },
  [aux_sym_type_annotation_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_diagnostic_annotation_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_table_literal_type_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_function_type_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_function_type_repeat2] = {
    .visible = false,
    .named = false,
  },
};

enum {
  field_extension = 1,
  field_field = 2,
  field_filename = 3,
  field_key = 4,
  field_start_column = 5,
  field_start_line = 6,
  field_value = 7,
  field_version = 8,
};

static const char * const ts_field_names[] = {
  [0] = NULL,
  [field_extension] = "extension",
  [field_field] = "field",
  [field_filename] = "filename",
  [field_key] = "key",
  [field_start_column] = "start_column",
  [field_start_line] = "start_line",
  [field_value] = "value",
  [field_version] = "version",
};

static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = {
  [1] = {.index = 0, .length = 1},
  [2] = {.index = 1, .length = 2},
  [3] = {.index = 3, .length = 1},
  [4] = {.index = 4, .length = 1},
  [5] = {.index = 5, .length = 3},
  [6] = {.index = 8, .length = 2},
  [7] = {.index = 10, .length = 2},
  [8] = {.index = 12, .length = 2},
  [9] = {.index = 14, .length = 3},
  [10] = {.index = 17, .length = 2},
  [11] = {.index = 19, .length = 4},
  [12] = {.index = 23, .length = 4},
  [13] = {.index = 27, .length = 4},
};

static const TSFieldMapEntry ts_field_map_entries[] = {
  [0] =
    {field_version, 1},
  [1] =
    {field_extension, 3},
    {field_filename, 1},
  [3] =
    {field_key, 2},
  [4] =
    {field_field, 1},
  [5] =
    {field_extension, 3},
    {field_filename, 1},
    {field_start_line, 5},
  [8] =
    {field_key, 2},
    {field_value, 4},
  [10] =
    {field_field, 1},
    {field_field, 4, .inherited = true},
  [12] =
    {field_field, 0, .inherited = true},
    {field_field, 1, .inherited = true},
  [14] =
    {field_field, 1},
    {field_field, 2},
    {field_field, 3},
  [17] =
    {field_field, 1},
    {field_field, 5, .inherited = true},
  [19] =
    {field_extension, 3},
    {field_filename, 1},
    {field_start_column, 7},
    {field_start_line, 5},
  [23] =
    {field_field, 1},
    {field_field, 2},
    {field_field, 3},
    {field_field, 6, .inherited = true},
  [27] =
    {field_field, 1},
    {field_field, 2},
    {field_field, 3},
    {field_field, 7, .inherited = true},
};

static const TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE_LENGTH] = {
  [0] = {0},
};

static const uint16_t ts_non_terminal_alias_map[] = {
  0,
};

static const TSStateId ts_primary_state_ids[STATE_COUNT] = {
  [0] = 0,
  [1] = 1,
  [2] = 2,
  [3] = 3,
  [4] = 3,
  [5] = 3,
  [6] = 3,
  [7] = 3,
  [8] = 3,
  [9] = 3,
  [10] = 3,
  [11] = 11,
  [12] = 11,
  [13] = 11,
  [14] = 11,
  [15] = 11,
  [16] = 11,
  [17] = 17,
  [18] = 18,
  [19] = 19,
  [20] = 11,
  [21] = 21,
  [22] = 22,
  [23] = 23,
  [24] = 24,
  [25] = 25,
  [26] = 24,
  [27] = 27,
  [28] = 28,
  [29] = 29,
  [30] = 30,
  [31] = 31,
  [32] = 32,
  [33] = 33,
  [34] = 25,
  [35] = 29,
  [36] = 36,
  [37] = 24,
  [38] = 28,
  [39] = 39,
  [40] = 29,
  [41] = 41,
  [42] = 42,
  [43] = 43,
  [44] = 22,
  [45] = 45,
  [46] = 46,
  [47] = 30,
  [48] = 31,
  [49] = 33,
  [50] = 25,
  [51] = 39,
  [52] = 24,
  [53] = 28,
  [54] = 29,
  [55] = 30,
  [56] = 31,
  [57] = 33,
  [58] = 25,
  [59] = 24,
  [60] = 28,
  [61] = 29,
  [62] = 30,
  [63] = 31,
  [64] = 33,
  [65] = 25,
  [66] = 39,
  [67] = 24,
  [68] = 28,
  [69] = 69,
  [70] = 28,
  [71] = 29,
  [72] = 72,
  [73] = 73,
  [74] = 30,
  [75] = 75,
  [76] = 31,
  [77] = 39,
  [78] = 39,
  [79] = 36,
  [80] = 33,
  [81] = 25,
  [82] = 82,
  [83] = 83,
  [84] = 36,
  [85] = 22,
  [86] = 33,
  [87] = 28,
  [88] = 88,
  [89] = 89,
  [90] = 29,
  [91] = 91,
  [92] = 73,
  [93] = 93,
  [94] = 94,
  [95] = 95,
  [96] = 96,
  [97] = 97,
  [98] = 98,
  [99] = 30,
  [100] = 33,
  [101] = 101,
  [102] = 102,
  [103] = 103,
  [104] = 104,
  [105] = 105,
  [106] = 106,
  [107] = 36,
  [108] = 108,
  [109] = 24,
  [110] = 39,
  [111] = 22,
  [112] = 112,
  [113] = 113,
  [114] = 31,
  [115] = 73,
  [116] = 23,
  [117] = 31,
  [118] = 23,
  [119] = 25,
  [120] = 73,
  [121] = 121,
  [122] = 23,
  [123] = 73,
  [124] = 23,
  [125] = 22,
  [126] = 30,
  [127] = 127,
  [128] = 39,
  [129] = 129,
  [130] = 130,
  [131] = 131,
  [132] = 132,
  [133] = 133,
  [134] = 134,
  [135] = 135,
  [136] = 136,
  [137] = 137,
  [138] = 138,
  [139] = 139,
  [140] = 140,
  [141] = 141,
  [142] = 142,
  [143] = 143,
  [144] = 144,
  [145] = 145,
  [146] = 146,
  [147] = 147,
  [148] = 148,
  [149] = 149,
  [150] = 150,
  [151] = 101,
  [152] = 143,
  [153] = 113,
  [154] = 93,
  [155] = 43,
  [156] = 95,
  [157] = 104,
  [158] = 105,
  [159] = 159,
  [160] = 112,
  [161] = 147,
  [162] = 136,
  [163] = 141,
  [164] = 101,
  [165] = 95,
  [166] = 94,
  [167] = 93,
  [168] = 94,
  [169] = 89,
  [170] = 131,
  [171] = 113,
  [172] = 82,
  [173] = 148,
  [174] = 89,
  [175] = 143,
  [176] = 104,
  [177] = 146,
  [178] = 82,
  [179] = 143,
  [180] = 113,
  [181] = 105,
  [182] = 182,
  [183] = 142,
  [184] = 112,
  [185] = 132,
  [186] = 134,
  [187] = 140,
  [188] = 129,
  [189] = 133,
  [190] = 43,
  [191] = 138,
  [192] = 145,
  [193] = 135,
  [194] = 137,
  [195] = 139,
  [196] = 130,
  [197] = 149,
  [198] = 144,
  [199] = 130,
  [200] = 200,
  [201] = 113,
  [202] = 138,
  [203] = 136,
  [204] = 89,
  [205] = 135,
  [206] = 94,
  [207] = 137,
  [208] = 208,
  [209] = 43,
  [210] = 210,
  [211] = 211,
  [212] = 82,
  [213] = 112,
  [214] = 89,
  [215] = 105,
  [216] = 104,
  [217] = 101,
  [218] = 95,
  [219] = 89,
  [220] = 93,
  [221] = 134,
  [222] = 94,
  [223] = 133,
  [224] = 224,
  [225] = 129,
  [226] = 82,
  [227] = 132,
  [228] = 141,
  [229] = 143,
  [230] = 113,
  [231] = 131,
  [232] = 139,
  [233] = 233,
  [234] = 82,
  [235] = 131,
  [236] = 149,
  [237] = 143,
  [238] = 141,
  [239] = 132,
  [240] = 140,
  [241] = 147,
  [242] = 94,
  [243] = 144,
  [244] = 142,
  [245] = 140,
  [246] = 129,
  [247] = 133,
  [248] = 142,
  [249] = 138,
  [250] = 146,
  [251] = 139,
  [252] = 149,
  [253] = 147,
  [254] = 144,
  [255] = 255,
  [256] = 256,
  [257] = 148,
  [258] = 148,
  [259] = 145,
  [260] = 145,
  [261] = 93,
  [262] = 136,
  [263] = 135,
  [264] = 137,
  [265] = 95,
  [266] = 105,
  [267] = 130,
  [268] = 134,
  [269] = 141,
  [270] = 270,
  [271] = 270,
  [272] = 272,
  [273] = 273,
  [274] = 142,
  [275] = 275,
  [276] = 140,
  [277] = 142,
  [278] = 140,
  [279] = 129,
  [280] = 133,
  [281] = 129,
  [282] = 138,
  [283] = 82,
  [284] = 139,
  [285] = 149,
  [286] = 147,
  [287] = 144,
  [288] = 146,
  [289] = 133,
  [290] = 148,
  [291] = 89,
  [292] = 145,
  [293] = 138,
  [294] = 94,
  [295] = 136,
  [296] = 135,
  [297] = 137,
  [298] = 139,
  [299] = 149,
  [300] = 130,
  [301] = 134,
  [302] = 147,
  [303] = 272,
  [304] = 132,
  [305] = 141,
  [306] = 144,
  [307] = 131,
  [308] = 113,
  [309] = 143,
  [310] = 310,
  [311] = 270,
  [312] = 272,
  [313] = 273,
  [314] = 275,
  [315] = 310,
  [316] = 148,
  [317] = 270,
  [318] = 272,
  [319] = 273,
  [320] = 320,
  [321] = 145,
  [322] = 136,
  [323] = 270,
  [324] = 135,
  [325] = 275,
  [326] = 310,
  [327] = 137,
  [328] = 270,
  [329] = 272,
  [330] = 275,
  [331] = 130,
  [332] = 134,
  [333] = 310,
  [334] = 273,
  [335] = 273,
  [336] = 132,
  [337] = 310,
  [338] = 272,
  [339] = 131,
  [340] = 273,
  [341] = 275,
  [342] = 270,
  [343] = 310,
  [344] = 275,
  [345] = 273,
  [346] = 310,
  [347] = 270,
  [348] = 275,
  [349] = 272,
  [350] = 350,
  [351] = 351,
  [352] = 352,
  [353] = 350,
  [354] = 131,
  [355] = 141,
  [356] = 350,
  [357] = 132,
  [358] = 134,
  [359] = 130,
  [360] = 360,
  [361] = 137,
  [362] = 362,
  [363] = 135,
  [364] = 350,
  [365] = 136,
  [366] = 366,
  [367] = 145,
  [368] = 148,
  [369] = 144,
  [370] = 147,
  [371] = 149,
  [372] = 350,
  [373] = 350,
  [374] = 139,
  [375] = 138,
  [376] = 376,
  [377] = 133,
  [378] = 378,
  [379] = 129,
  [380] = 350,
  [381] = 140,
  [382] = 142,
  [383] = 383,
  [384] = 384,
  [385] = 385,
  [386] = 386,
  [387] = 387,
  [388] = 388,
  [389] = 389,
  [390] = 390,
  [391] = 389,
  [392] = 392,
  [393] = 392,
  [394] = 389,
  [395] = 389,
  [396] = 389,
  [397] = 397,
  [398] = 392,
  [399] = 397,
  [400] = 392,
  [401] = 389,
  [402] = 397,
  [403] = 397,
  [404] = 392,
  [405] = 397,
  [406] = 406,
  [407] = 397,
  [408] = 389,
  [409] = 397,
  [410] = 392,
  [411] = 392,
  [412] = 412,
  [413] = 43,
  [414] = 414,
  [415] = 415,
  [416] = 416,
  [417] = 43,
  [418] = 112,
  [419] = 101,
  [420] = 104,
  [421] = 421,
  [422] = 422,
  [423] = 423,
  [424] = 424,
  [425] = 89,
  [426] = 423,
  [427] = 427,
  [428] = 428,
  [429] = 429,
  [430] = 430,
  [431] = 424,
  [432] = 421,
  [433] = 422,
  [434] = 434,
  [435] = 435,
  [436] = 436,
  [437] = 422,
  [438] = 434,
  [439] = 436,
  [440] = 82,
  [441] = 434,
  [442] = 421,
  [443] = 430,
  [444] = 444,
  [445] = 428,
  [446] = 436,
  [447] = 427,
  [448] = 422,
  [449] = 436,
  [450] = 434,
  [451] = 421,
  [452] = 424,
  [453] = 453,
  [454] = 423,
  [455] = 430,
  [456] = 422,
  [457] = 424,
  [458] = 428,
  [459] = 427,
  [460] = 427,
  [461] = 424,
  [462] = 423,
  [463] = 422,
  [464] = 427,
  [465] = 465,
  [466] = 428,
  [467] = 421,
  [468] = 434,
  [469] = 436,
  [470] = 424,
  [471] = 471,
  [472] = 423,
  [473] = 430,
  [474] = 430,
  [475] = 428,
  [476] = 434,
  [477] = 427,
  [478] = 423,
  [479] = 94,
  [480] = 480,
  [481] = 481,
  [482] = 482,
  [483] = 436,
  [484] = 421,
  [485] = 434,
  [486] = 421,
  [487] = 424,
  [488] = 428,
  [489] = 422,
  [490] = 422,
  [491] = 424,
  [492] = 423,
  [493] = 421,
  [494] = 434,
  [495] = 495,
  [496] = 436,
  [497] = 430,
  [498] = 427,
  [499] = 499,
  [500] = 430,
  [501] = 501,
  [502] = 428,
  [503] = 503,
  [504] = 504,
  [505] = 505,
  [506] = 506,
  [507] = 507,
  [508] = 508,
  [509] = 509,
  [510] = 510,
  [511] = 505,
  [512] = 505,
  [513] = 513,
  [514] = 514,
  [515] = 506,
  [516] = 506,
  [517] = 517,
  [518] = 517,
  [519] = 505,
  [520] = 520,
  [521] = 521,
  [522] = 522,
  [523] = 523,
  [524] = 524,
  [525] = 525,
  [526] = 526,
  [527] = 527,
  [528] = 517,
  [529] = 505,
  [530] = 517,
  [531] = 531,
  [532] = 514,
  [533] = 514,
  [534] = 505,
  [535] = 535,
  [536] = 506,
  [537] = 537,
  [538] = 505,
  [539] = 517,
  [540] = 514,
  [541] = 541,
  [542] = 542,
  [543] = 517,
  [544] = 506,
  [545] = 545,
  [546] = 546,
  [547] = 517,
  [548] = 514,
  [549] = 506,
  [550] = 550,
  [551] = 551,
  [552] = 517,
  [553] = 514,
  [554] = 506,
  [555] = 514,
  [556] = 556,
  [557] = 505,
  [558] = 558,
  [559] = 559,
  [560] = 560,
  [561] = 561,
  [562] = 559,
  [563] = 563,
  [564] = 564,
  [565] = 565,
  [566] = 566,
  [567] = 567,
  [568] = 568,
  [569] = 569,
  [570] = 570,
  [571] = 571,
  [572] = 572,
  [573] = 573,
  [574] = 564,
  [575] = 575,
  [576] = 561,
  [577] = 577,
  [578] = 578,
  [579] = 579,
  [580] = 580,
  [581] = 581,
  [582] = 582,
  [583] = 583,
  [584] = 584,
  [585] = 585,
  [586] = 564,
  [587] = 587,
  [588] = 588,
  [589] = 559,
  [590] = 578,
  [591] = 579,
  [592] = 561,
  [593] = 593,
  [594] = 594,
  [595] = 595,
  [596] = 564,
  [597] = 559,
  [598] = 598,
  [599] = 578,
  [600] = 579,
  [601] = 601,
  [602] = 602,
  [603] = 603,
  [604] = 561,
  [605] = 605,
  [606] = 606,
  [607] = 607,
  [608] = 578,
  [609] = 579,
  [610] = 610,
  [611] = 611,
  [612] = 612,
  [613] = 564,
  [614] = 559,
  [615] = 615,
  [616] = 561,
  [617] = 578,
  [618] = 579,
  [619] = 579,
  [620] = 578,
  [621] = 621,
  [622] = 622,
  [623] = 623,
  [624] = 624,
  [625] = 625,
  [626] = 578,
  [627] = 579,
  [628] = 628,
  [629] = 629,
  [630] = 630,
  [631] = 631,
  [632] = 632,
  [633] = 633,
  [634] = 634,
  [635] = 635,
  [636] = 566,
  [637] = 637,
  [638] = 564,
  [639] = 639,
  [640] = 559,
  [641] = 561,
  [642] = 642,
  [643] = 643,
  [644] = 644,
  [645] = 645,
  [646] = 646,
  [647] = 566,
  [648] = 645,
  [649] = 645,
  [650] = 650,
  [651] = 566,
  [652] = 652,
  [653] = 645,
  [654] = 654,
  [655] = 566,
  [656] = 564,
  [657] = 645,
  [658] = 559,
  [659] = 566,
  [660] = 561,
  [661] = 645,
  [662] = 662,
  [663] = 566,
  [664] = 664,
  [665] = 645,
  [666] = 578,
  [667] = 573,
  [668] = 668,
  [669] = 573,
  [670] = 670,
  [671] = 573,
  [672] = 672,
  [673] = 573,
  [674] = 674,
  [675] = 573,
  [676] = 676,
  [677] = 573,
  [678] = 678,
  [679] = 679,
  [680] = 680,
  [681] = 681,
  [682] = 682,
  [683] = 683,
  [684] = 684,
};

static bool ts_lex(TSLexer *lexer, TSStateId state) {
  START_LEXER();
  eof = lexer->eof(lexer);
  switch (state) {
    case 0:
      if (eof) ADVANCE(266);
      if (lookahead == '"') ADVANCE(364);
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == '\'') ADVANCE(24);
      if (lookahead == '(') ADVANCE(296);
      if (lookahead == ')') ADVANCE(297);
      if (lookahead == ',') ADVANCE(270);
      if (lookahead == '.') ADVANCE(287);
      if (lookahead == '5') ADVANCE(384);
      if (lookahead == ':') ADVANCE(268);
      if (lookahead == '<') ADVANCE(351);
      if (lookahead == '>') ADVANCE(352);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '@') ADVANCE(312);
      if (lookahead == 'C') ADVANCE(36);
      if (lookahead == 'J') ADVANCE(37);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == ']') ADVANCE(348);
      if (lookahead == 'a') ADVANCE(156);
      if (lookahead == 'b') ADVANCE(172);
      if (lookahead == 'e') ADVANCE(233);
      if (lookahead == 'f') ADVANCE(224);
      if (lookahead == 'n') ADVANCE(127);
      if (lookahead == 'p') ADVANCE(184);
      if (lookahead == 's') ADVANCE(101);
      if (lookahead == 't') ADVANCE(57);
      if (lookahead == 'u') ADVANCE(199);
      if (lookahead == 'v') ADVANCE(171);
      if (lookahead == '{') ADVANCE(353);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '}') ADVANCE(355);
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ') SKIP(239)
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(385);
      END_STATE();
    case 1:
      if (lookahead == '"') ADVANCE(364);
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == '(') ADVANCE(296);
      if (lookahead == ')') ADVANCE(297);
      if (lookahead == ',') ADVANCE(270);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == ':') ADVANCE(268);
      if (lookahead == '<') ADVANCE(351);
      if (lookahead == '>') ADVANCE(352);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '@') ADVANCE(41);
      if (lookahead == 'C') ADVANCE(386);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == ']') ADVANCE(354);
      if (lookahead == 'a') ADVANCE(425);
      if (lookahead == 'b') ADVANCE(434);
      if (lookahead == 'f') ADVANCE(449);
      if (lookahead == 'n') ADVANCE(412);
      if (lookahead == 's') ADVANCE(442);
      if (lookahead == 't') ADVANCE(387);
      if (lookahead == 'u') ADVANCE(441);
      if (lookahead == 'v') ADVANCE(432);
      if (lookahead == '{') ADVANCE(353);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '}') ADVANCE(355);
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ') SKIP(1)
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(385);
      if (('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('c' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 2:
      if (lookahead == '"') ADVANCE(364);
      if (lookahead == '(') ADVANCE(296);
      if (lookahead == ')') ADVANCE(297);
      if (lookahead == '.') ADVANCE(28);
      if (lookahead == 'C') ADVANCE(386);
      if (lookahead == ']') ADVANCE(348);
      if (lookahead == 'a') ADVANCE(425);
      if (lookahead == 'b') ADVANCE(434);
      if (lookahead == 'f') ADVANCE(449);
      if (lookahead == 'n') ADVANCE(412);
      if (lookahead == 's') ADVANCE(405);
      if (lookahead == 't') ADVANCE(387);
      if (lookahead == 'u') ADVANCE(441);
      if (lookahead == 'v') ADVANCE(432);
      if (lookahead == '{') ADVANCE(353);
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ') SKIP(3)
      if (('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('c' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 3:
      if (lookahead == '"') ADVANCE(364);
      if (lookahead == '(') ADVANCE(296);
      if (lookahead == ')') ADVANCE(297);
      if (lookahead == '.') ADVANCE(28);
      if (lookahead == 'C') ADVANCE(386);
      if (lookahead == 'a') ADVANCE(425);
      if (lookahead == 'b') ADVANCE(434);
      if (lookahead == 'f') ADVANCE(449);
      if (lookahead == 'n') ADVANCE(412);
      if (lookahead == 's') ADVANCE(405);
      if (lookahead == 't') ADVANCE(387);
      if (lookahead == 'u') ADVANCE(441);
      if (lookahead == 'v') ADVANCE(432);
      if (lookahead == '{') ADVANCE(353);
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ') SKIP(3)
      if (('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('c' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 4:
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == '(') ADVANCE(296);
      if (lookahead == ',') ADVANCE(270);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == ':') ADVANCE(268);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '@') ADVANCE(312);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(314);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(4)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 5:
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == '(') ADVANCE(296);
      if (lookahead == ',') ADVANCE(270);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '@') ADVANCE(312);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(315);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(5)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 6:
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == '(') ADVANCE(296);
      if (lookahead == ',') ADVANCE(270);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(316);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(6)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 7:
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == '(') ADVANCE(296);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == ':') ADVANCE(268);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '@') ADVANCE(312);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(317);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(7)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 8:
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == '(') ADVANCE(296);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '@') ADVANCE(312);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(318);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(8)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 9:
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == '(') ADVANCE(296);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(319);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(9)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 10:
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == ',') ADVANCE(270);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == ':') ADVANCE(268);
      if (lookahead == '<') ADVANCE(351);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '@') ADVANCE(312);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(320);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(10)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 11:
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == ',') ADVANCE(270);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == ':') ADVANCE(268);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '@') ADVANCE(312);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(321);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(11)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 12:
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == ',') ADVANCE(270);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == ':') ADVANCE(268);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(322);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(12)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 13:
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == ',') ADVANCE(270);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == '<') ADVANCE(351);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '@') ADVANCE(312);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(323);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(13)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 14:
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == ',') ADVANCE(270);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == '<') ADVANCE(351);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(324);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(14)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 15:
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == ',') ADVANCE(270);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '@') ADVANCE(312);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(325);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(15)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 16:
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == ',') ADVANCE(270);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(326);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(16)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 17:
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == ':') ADVANCE(268);
      if (lookahead == '<') ADVANCE(351);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '@') ADVANCE(312);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(327);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(17)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 18:
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == ':') ADVANCE(268);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '@') ADVANCE(312);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(328);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(18)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 19:
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == ':') ADVANCE(268);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(329);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(19)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 20:
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == '<') ADVANCE(351);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '@') ADVANCE(312);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(330);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(20)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 21:
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == '<') ADVANCE(351);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(331);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(21)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 22:
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '@') ADVANCE(312);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(332);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(22)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 23:
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(333);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(23)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 24:
      if (lookahead == '\'') ADVANCE(383);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(24);
      END_STATE();
    case 25:
      if (lookahead == ',') ADVANCE(270);
      if (lookahead == ':') ADVANCE(268);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(334);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(25)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 26:
      if (lookahead == ',') ADVANCE(270);
      if (lookahead == '@') ADVANCE(312);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(335);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(26)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 27:
      if (lookahead == ',') ADVANCE(270);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(336);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(27)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 28:
      if (lookahead == '.') ADVANCE(30);
      END_STATE();
    case 29:
      if (lookahead == '.') ADVANCE(33);
      END_STATE();
    case 30:
      if (lookahead == '.') ADVANCE(272);
      END_STATE();
    case 31:
      if (lookahead == '.') ADVANCE(28);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '}') ADVANCE(355);
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ') SKIP(31)
      if (('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 32:
      if (lookahead == '.') ADVANCE(28);
      if (lookahead == 's') ADVANCE(406);
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ') SKIP(32)
      if (('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 33:
      if (lookahead == '1') ADVANCE(289);
      if (lookahead == '2') ADVANCE(290);
      if (lookahead == '3') ADVANCE(291);
      if (lookahead == '4') ADVANCE(292);
      END_STATE();
    case 34:
      if (lookahead == '5') ADVANCE(29);
      if (lookahead == 'J') ADVANCE(37);
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ') SKIP(34)
      END_STATE();
    case 35:
      if (lookahead == ':') ADVANCE(268);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(337);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(35)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 36:
      if (lookahead == 'F') ADVANCE(226);
      END_STATE();
    case 37:
      if (lookahead == 'I') ADVANCE(38);
      END_STATE();
    case 38:
      if (lookahead == 'T') ADVANCE(293);
      END_STATE();
    case 39:
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == 'p') ADVANCE(438);
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ') SKIP(39)
      if (('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 40:
      if (lookahead == 'a') ADVANCE(379);
      END_STATE();
    case 41:
      if (lookahead == 'a') ADVANCE(148);
      if (lookahead == 'c') ADVANCE(45);
      if (lookahead == 'd') ADVANCE(92);
      if (lookahead == 'e') ADVANCE(165);
      if (lookahead == 'f') ADVANCE(136);
      if (lookahead == 'g') ADVANCE(112);
      if (lookahead == 'l') ADVANCE(56);
      if (lookahead == 'm') ADVANCE(117);
      if (lookahead == 'n') ADVANCE(174);
      if (lookahead == 'o') ADVANCE(183);
      if (lookahead == 'p') ADVANCE(42);
      if (lookahead == 'r') ADVANCE(107);
      if (lookahead == 's') ADVANCE(113);
      if (lookahead == 't') ADVANCE(235);
      if (lookahead == 'v') ADVANCE(49);
      END_STATE();
    case 42:
      if (lookahead == 'a') ADVANCE(68);
      if (lookahead == 'r') ADVANCE(141);
      if (lookahead == 'u') ADVANCE(66);
      END_STATE();
    case 43:
      if (lookahead == 'a') ADVANCE(283);
      END_STATE();
    case 44:
      if (lookahead == 'a') ADVANCE(124);
      END_STATE();
    case 45:
      if (lookahead == 'a') ADVANCE(203);
      if (lookahead == 'l') ADVANCE(48);
      END_STATE();
    case 46:
      if (lookahead == 'a') ADVANCE(212);
      END_STATE();
    case 47:
      if (lookahead == 'a') ADVANCE(154);
      END_STATE();
    case 48:
      if (lookahead == 'a') ADVANCE(204);
      END_STATE();
    case 49:
      if (lookahead == 'a') ADVANCE(194);
      if (lookahead == 'e') ADVANCE(189);
      END_STATE();
    case 50:
      if (lookahead == 'a') ADVANCE(125);
      END_STATE();
    case 51:
      if (lookahead == 'a') ADVANCE(160);
      END_STATE();
    case 52:
      if (lookahead == 'a') ADVANCE(201);
      END_STATE();
    case 53:
      if (lookahead == 'a') ADVANCE(215);
      END_STATE();
    case 54:
      if (lookahead == 'a') ADVANCE(82);
      END_STATE();
    case 55:
      if (lookahead == 'a') ADVANCE(191);
      END_STATE();
    case 56:
      if (lookahead == 'a') ADVANCE(167);
      END_STATE();
    case 57:
      if (lookahead == 'a') ADVANCE(65);
      END_STATE();
    case 58:
      if (lookahead == 'a') ADVANCE(193);
      END_STATE();
    case 59:
      if (lookahead == 'a') ADVANCE(126);
      END_STATE();
    case 60:
      if (lookahead == 'a') ADVANCE(213);
      END_STATE();
    case 61:
      if (lookahead == 'a') ADVANCE(217);
      END_STATE();
    case 62:
      if (lookahead == 'a') ADVANCE(219);
      END_STATE();
    case 63:
      if (lookahead == 'b') ADVANCE(146);
      END_STATE();
    case 64:
      if (lookahead == 'b') ADVANCE(105);
      END_STATE();
    case 65:
      if (lookahead == 'b') ADVANCE(147);
      END_STATE();
    case 66:
      if (lookahead == 'b') ADVANCE(152);
      END_STATE();
    case 67:
      if (lookahead == 'c') ADVANCE(306);
      END_STATE();
    case 68:
      if (lookahead == 'c') ADVANCE(142);
      if (lookahead == 'r') ADVANCE(47);
      END_STATE();
    case 69:
      if (lookahead == 'c') ADVANCE(301);
      END_STATE();
    case 70:
      if (lookahead == 'c') ADVANCE(277);
      END_STATE();
    case 71:
      if (lookahead == 'c') ADVANCE(280);
      END_STATE();
    case 72:
      if (lookahead == 'c') ADVANCE(282);
      END_STATE();
    case 73:
      if (lookahead == 'c') ADVANCE(58);
      END_STATE();
    case 74:
      if (lookahead == 'c') ADVANCE(96);
      END_STATE();
    case 75:
      if (lookahead == 'c') ADVANCE(214);
      END_STATE();
    case 76:
      if (lookahead == 'c') ADVANCE(218);
      END_STATE();
    case 77:
      if (lookahead == 'c') ADVANCE(221);
      END_STATE();
    case 78:
      if (lookahead == 'c') ADVANCE(62);
      END_STATE();
    case 79:
      if (lookahead == 'd') ADVANCE(381);
      END_STATE();
    case 80:
      if (lookahead == 'd') ADVANCE(308);
      END_STATE();
    case 81:
      if (lookahead == 'd') ADVANCE(276);
      END_STATE();
    case 82:
      if (lookahead == 'd') ADVANCE(302);
      END_STATE();
    case 83:
      if (lookahead == 'd') ADVANCE(298);
      END_STATE();
    case 84:
      if (lookahead == 'd') ADVANCE(278);
      END_STATE();
    case 85:
      if (lookahead == 'd') ADVANCE(299);
      END_STATE();
    case 86:
      if (lookahead == 'd') ADVANCE(200);
      END_STATE();
    case 87:
      if (lookahead == 'd') ADVANCE(230);
      END_STATE();
    case 88:
      if (lookahead == 'd') ADVANCE(46);
      END_STATE();
    case 89:
      if (lookahead == 'd') ADVANCE(134);
      END_STATE();
    case 90:
      if (lookahead == 'e') ADVANCE(349);
      END_STATE();
    case 91:
      if (lookahead == 'e') ADVANCE(310);
      END_STATE();
    case 92:
      if (lookahead == 'e') ADVANCE(181);
      if (lookahead == 'i') ADVANCE(44);
      END_STATE();
    case 93:
      if (lookahead == 'e') ADVANCE(305);
      END_STATE();
    case 94:
      if (lookahead == 'e') ADVANCE(269);
      END_STATE();
    case 95:
      if (lookahead == 'e') ADVANCE(284);
      END_STATE();
    case 96:
      if (lookahead == 'e') ADVANCE(285);
      END_STATE();
    case 97:
      if (lookahead == 'e') ADVANCE(294);
      END_STATE();
    case 98:
      if (lookahead == 'e') ADVANCE(279);
      END_STATE();
    case 99:
      if (lookahead == 'e') ADVANCE(304);
      END_STATE();
    case 100:
      if (lookahead == 'e') ADVANCE(344);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(339);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(100)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 101:
      if (lookahead == 'e') ADVANCE(144);
      if (lookahead == 't') ADVANCE(187);
      END_STATE();
    case 102:
      if (lookahead == 'e') ADVANCE(188);
      END_STATE();
    case 103:
      if (lookahead == 'e') ADVANCE(75);
      END_STATE();
    case 104:
      if (lookahead == 'e') ADVANCE(51);
      END_STATE();
    case 105:
      if (lookahead == 'e') ADVANCE(185);
      END_STATE();
    case 106:
      if (lookahead == 'e') ADVANCE(166);
      END_STATE();
    case 107:
      if (lookahead == 'e') ADVANCE(220);
      END_STATE();
    case 108:
      if (lookahead == 'e') ADVANCE(80);
      END_STATE();
    case 109:
      if (lookahead == 'e') ADVANCE(150);
      END_STATE();
    case 110:
      if (lookahead == 'e') ADVANCE(78);
      END_STATE();
    case 111:
      if (lookahead == 'e') ADVANCE(192);
      END_STATE();
    case 112:
      if (lookahead == 'e') ADVANCE(170);
      END_STATE();
    case 113:
      if (lookahead == 'e') ADVANCE(93);
      if (lookahead == 'o') ADVANCE(227);
      END_STATE();
    case 114:
      if (lookahead == 'e') ADVANCE(84);
      END_STATE();
    case 115:
      if (lookahead == 'e') ADVANCE(85);
      END_STATE();
    case 116:
      if (lookahead == 'e') ADVANCE(198);
      END_STATE();
    case 117:
      if (lookahead == 'e') ADVANCE(216);
      if (lookahead == 'o') ADVANCE(87);
      END_STATE();
    case 118:
      if (lookahead == 'e') ADVANCE(195);
      END_STATE();
    case 119:
      if (lookahead == 'e') ADVANCE(76);
      END_STATE();
    case 120:
      if (lookahead == 'f') ADVANCE(361);
      END_STATE();
    case 121:
      if (lookahead == 'g') ADVANCE(377);
      END_STATE();
    case 122:
      if (lookahead == 'g') ADVANCE(281);
      END_STATE();
    case 123:
      if (lookahead == 'g') ADVANCE(229);
      END_STATE();
    case 124:
      if (lookahead == 'g') ADVANCE(169);
      END_STATE();
    case 125:
      if (lookahead == 'g') ADVANCE(97);
      END_STATE();
    case 126:
      if (lookahead == 'g') ADVANCE(99);
      END_STATE();
    case 127:
      if (lookahead == 'i') ADVANCE(143);
      if (lookahead == 'u') ADVANCE(155);
      END_STATE();
    case 128:
      if (lookahead == 'i') ADVANCE(231);
      if (lookahead == 'o') ADVANCE(210);
      END_STATE();
    case 129:
      if (lookahead == 'i') ADVANCE(79);
      END_STATE();
    case 130:
      if (lookahead == 'i') ADVANCE(67);
      END_STATE();
    case 131:
      if (lookahead == 'i') ADVANCE(175);
      END_STATE();
    case 132:
      if (lookahead == 'i') ADVANCE(159);
      END_STATE();
    case 133:
      if (lookahead == 'i') ADVANCE(52);
      END_STATE();
    case 134:
      if (lookahead == 'i') ADVANCE(205);
      END_STATE();
    case 135:
      if (lookahead == 'i') ADVANCE(70);
      END_STATE();
    case 136:
      if (lookahead == 'i') ADVANCE(109);
      END_STATE();
    case 137:
      if (lookahead == 'i') ADVANCE(71);
      END_STATE();
    case 138:
      if (lookahead == 'i') ADVANCE(72);
      END_STATE();
    case 139:
      if (lookahead == 'i') ADVANCE(176);
      END_STATE();
    case 140:
      if (lookahead == 'i') ADVANCE(179);
      END_STATE();
    case 141:
      if (lookahead == 'i') ADVANCE(232);
      if (lookahead == 'o') ADVANCE(223);
      END_STATE();
    case 142:
      if (lookahead == 'k') ADVANCE(50);
      END_STATE();
    case 143:
      if (lookahead == 'l') ADVANCE(373);
      END_STATE();
    case 144:
      if (lookahead == 'l') ADVANCE(120);
      END_STATE();
    case 145:
      if (lookahead == 'l') ADVANCE(104);
      END_STATE();
    case 146:
      if (lookahead == 'l') ADVANCE(130);
      END_STATE();
    case 147:
      if (lookahead == 'l') ADVANCE(90);
      END_STATE();
    case 148:
      if (lookahead == 'l') ADVANCE(133);
      if (lookahead == 's') ADVANCE(236);
      END_STATE();
    case 149:
      if (lookahead == 'l') ADVANCE(180);
      END_STATE();
    case 150:
      if (lookahead == 'l') ADVANCE(81);
      END_STATE();
    case 151:
      if (lookahead == 'l') ADVANCE(95);
      END_STATE();
    case 152:
      if (lookahead == 'l') ADVANCE(135);
      END_STATE();
    case 153:
      if (lookahead == 'm') ADVANCE(303);
      END_STATE();
    case 154:
      if (lookahead == 'm') ADVANCE(271);
      END_STATE();
    case 155:
      if (lookahead == 'm') ADVANCE(64);
      END_STATE();
    case 156:
      if (lookahead == 'n') ADVANCE(234);
      END_STATE();
    case 157:
      if (lookahead == 'n') ADVANCE(357);
      END_STATE();
    case 158:
      if (lookahead == 'n') ADVANCE(77);
      END_STATE();
    case 159:
      if (lookahead == 'n') ADVANCE(121);
      END_STATE();
    case 160:
      if (lookahead == 'n') ADVANCE(369);
      END_STATE();
    case 161:
      if (lookahead == 'n') ADVANCE(359);
      END_STATE();
    case 162:
      if (lookahead == 'n') ADVANCE(371);
      END_STATE();
    case 163:
      if (lookahead == 'n') ADVANCE(275);
      END_STATE();
    case 164:
      if (lookahead == 'n') ADVANCE(288);
      END_STATE();
    case 165:
      if (lookahead == 'n') ADVANCE(225);
      END_STATE();
    case 166:
      if (lookahead == 'n') ADVANCE(86);
      END_STATE();
    case 167:
      if (lookahead == 'n') ADVANCE(123);
      END_STATE();
    case 168:
      if (lookahead == 'n') ADVANCE(69);
      END_STATE();
    case 169:
      if (lookahead == 'n') ADVANCE(177);
      END_STATE();
    case 170:
      if (lookahead == 'n') ADVANCE(116);
      END_STATE();
    case 171:
      if (lookahead == 'o') ADVANCE(129);
      END_STATE();
    case 172:
      if (lookahead == 'o') ADVANCE(173);
      END_STATE();
    case 173:
      if (lookahead == 'o') ADVANCE(145);
      END_STATE();
    case 174:
      if (lookahead == 'o') ADVANCE(89);
      END_STATE();
    case 175:
      if (lookahead == 'o') ADVANCE(161);
      END_STATE();
    case 176:
      if (lookahead == 'o') ADVANCE(162);
      END_STATE();
    case 177:
      if (lookahead == 'o') ADVANCE(206);
      END_STATE();
    case 178:
      if (lookahead == 'o') ADVANCE(186);
      END_STATE();
    case 179:
      if (lookahead == 'o') ADVANCE(164);
      END_STATE();
    case 180:
      if (lookahead == 'o') ADVANCE(54);
      END_STATE();
    case 181:
      if (lookahead == 'p') ADVANCE(196);
      END_STATE();
    case 182:
      if (lookahead == 'p') ADVANCE(94);
      END_STATE();
    case 183:
      if (lookahead == 'p') ADVANCE(118);
      if (lookahead == 'v') ADVANCE(111);
      END_STATE();
    case 184:
      if (lookahead == 'r') ADVANCE(128);
      if (lookahead == 'u') ADVANCE(63);
      END_STATE();
    case 185:
      if (lookahead == 'r') ADVANCE(375);
      END_STATE();
    case 186:
      if (lookahead == 'r') ADVANCE(295);
      END_STATE();
    case 187:
      if (lookahead == 'r') ADVANCE(132);
      END_STATE();
    case 188:
      if (lookahead == 'r') ADVANCE(88);
      END_STATE();
    case 189:
      if (lookahead == 'r') ADVANCE(207);
      END_STATE();
    case 190:
      if (lookahead == 'r') ADVANCE(74);
      END_STATE();
    case 191:
      if (lookahead == 'r') ADVANCE(122);
      END_STATE();
    case 192:
      if (lookahead == 'r') ADVANCE(149);
      END_STATE();
    case 193:
      if (lookahead == 'r') ADVANCE(83);
      END_STATE();
    case 194:
      if (lookahead == 'r') ADVANCE(55);
      END_STATE();
    case 195:
      if (lookahead == 'r') ADVANCE(53);
      END_STATE();
    case 196:
      if (lookahead == 'r') ADVANCE(110);
      END_STATE();
    case 197:
      if (lookahead == 'r') ADVANCE(163);
      END_STATE();
    case 198:
      if (lookahead == 'r') ADVANCE(137);
      END_STATE();
    case 199:
      if (lookahead == 's') ADVANCE(102);
      END_STATE();
    case 200:
      if (lookahead == 's') ADVANCE(313);
      END_STATE();
    case 201:
      if (lookahead == 's') ADVANCE(274);
      END_STATE();
    case 202:
      if (lookahead == 's') ADVANCE(267);
      END_STATE();
    case 203:
      if (lookahead == 's') ADVANCE(208);
      END_STATE();
    case 204:
      if (lookahead == 's') ADVANCE(202);
      END_STATE();
    case 205:
      if (lookahead == 's') ADVANCE(73);
      END_STATE();
    case 206:
      if (lookahead == 's') ADVANCE(222);
      END_STATE();
    case 207:
      if (lookahead == 's') ADVANCE(140);
      END_STATE();
    case 208:
      if (lookahead == 't') ADVANCE(300);
      END_STATE();
    case 209:
      if (lookahead == 't') ADVANCE(106);
      END_STATE();
    case 210:
      if (lookahead == 't') ADVANCE(103);
      END_STATE();
    case 211:
      if (lookahead == 't') ADVANCE(131);
      END_STATE();
    case 212:
      if (lookahead == 't') ADVANCE(40);
      END_STATE();
    case 213:
      if (lookahead == 't') ADVANCE(91);
      END_STATE();
    case 214:
      if (lookahead == 't') ADVANCE(108);
      END_STATE();
    case 215:
      if (lookahead == 't') ADVANCE(178);
      END_STATE();
    case 216:
      if (lookahead == 't') ADVANCE(43);
      END_STATE();
    case 217:
      if (lookahead == 't') ADVANCE(98);
      END_STATE();
    case 218:
      if (lookahead == 't') ADVANCE(114);
      END_STATE();
    case 219:
      if (lookahead == 't') ADVANCE(115);
      END_STATE();
    case 220:
      if (lookahead == 't') ADVANCE(228);
      END_STATE();
    case 221:
      if (lookahead == 't') ADVANCE(139);
      END_STATE();
    case 222:
      if (lookahead == 't') ADVANCE(138);
      END_STATE();
    case 223:
      if (lookahead == 't') ADVANCE(119);
      END_STATE();
    case 224:
      if (lookahead == 'u') ADVANCE(157);
      END_STATE();
    case 225:
      if (lookahead == 'u') ADVANCE(153);
      END_STATE();
    case 226:
      if (lookahead == 'u') ADVANCE(158);
      END_STATE();
    case 227:
      if (lookahead == 'u') ADVANCE(190);
      END_STATE();
    case 228:
      if (lookahead == 'u') ADVANCE(197);
      END_STATE();
    case 229:
      if (lookahead == 'u') ADVANCE(59);
      END_STATE();
    case 230:
      if (lookahead == 'u') ADVANCE(151);
      END_STATE();
    case 231:
      if (lookahead == 'v') ADVANCE(60);
      END_STATE();
    case 232:
      if (lookahead == 'v') ADVANCE(61);
      END_STATE();
    case 233:
      if (lookahead == 'x') ADVANCE(209);
      END_STATE();
    case 234:
      if (lookahead == 'y') ADVANCE(367);
      END_STATE();
    case 235:
      if (lookahead == 'y') ADVANCE(182);
      END_STATE();
    case 236:
      if (lookahead == 'y') ADVANCE(168);
      END_STATE();
    case 237:
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(345);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(237)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 238:
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ') SKIP(238)
      if (('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(454);
      END_STATE();
    case 239:
      if (eof) ADVANCE(266);
      if (lookahead == '"') ADVANCE(364);
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == '\'') ADVANCE(24);
      if (lookahead == '(') ADVANCE(296);
      if (lookahead == ')') ADVANCE(297);
      if (lookahead == ',') ADVANCE(270);
      if (lookahead == '.') ADVANCE(287);
      if (lookahead == '5') ADVANCE(384);
      if (lookahead == ':') ADVANCE(268);
      if (lookahead == '<') ADVANCE(351);
      if (lookahead == '>') ADVANCE(352);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '@') ADVANCE(312);
      if (lookahead == 'C') ADVANCE(36);
      if (lookahead == 'J') ADVANCE(37);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == ']') ADVANCE(354);
      if (lookahead == 'a') ADVANCE(156);
      if (lookahead == 'b') ADVANCE(172);
      if (lookahead == 'e') ADVANCE(233);
      if (lookahead == 'f') ADVANCE(224);
      if (lookahead == 'n') ADVANCE(127);
      if (lookahead == 'p') ADVANCE(184);
      if (lookahead == 's') ADVANCE(101);
      if (lookahead == 't') ADVANCE(57);
      if (lookahead == 'u') ADVANCE(199);
      if (lookahead == 'v') ADVANCE(171);
      if (lookahead == '{') ADVANCE(353);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '}') ADVANCE(355);
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ') SKIP(239)
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(385);
      END_STATE();
    case 240:
      if (eof) ADVANCE(266);
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == '(') ADVANCE(296);
      if (lookahead == ',') ADVANCE(270);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == ':') ADVANCE(268);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '@') ADVANCE(312);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(314);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(240)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 241:
      if (eof) ADVANCE(266);
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == '(') ADVANCE(296);
      if (lookahead == ',') ADVANCE(270);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '@') ADVANCE(312);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(315);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(241)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 242:
      if (eof) ADVANCE(266);
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == '(') ADVANCE(296);
      if (lookahead == ',') ADVANCE(270);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(316);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(242)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 243:
      if (eof) ADVANCE(266);
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == '(') ADVANCE(296);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == ':') ADVANCE(268);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '@') ADVANCE(312);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(317);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(243)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 244:
      if (eof) ADVANCE(266);
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == '(') ADVANCE(296);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '@') ADVANCE(312);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(318);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(244)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 245:
      if (eof) ADVANCE(266);
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == '(') ADVANCE(296);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(319);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(245)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 246:
      if (eof) ADVANCE(266);
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == ',') ADVANCE(270);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == ':') ADVANCE(268);
      if (lookahead == '<') ADVANCE(351);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '@') ADVANCE(312);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(320);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(246)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 247:
      if (eof) ADVANCE(266);
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == ',') ADVANCE(270);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == ':') ADVANCE(268);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '@') ADVANCE(312);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(321);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(247)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 248:
      if (eof) ADVANCE(266);
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == ',') ADVANCE(270);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == ':') ADVANCE(268);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(322);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(248)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 249:
      if (eof) ADVANCE(266);
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == ',') ADVANCE(270);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == '<') ADVANCE(351);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '@') ADVANCE(312);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(323);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(249)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 250:
      if (eof) ADVANCE(266);
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == ',') ADVANCE(270);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == '<') ADVANCE(351);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(324);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(250)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 251:
      if (eof) ADVANCE(266);
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == ',') ADVANCE(270);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '@') ADVANCE(312);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(325);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(251)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 252:
      if (eof) ADVANCE(266);
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == ',') ADVANCE(270);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(326);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(252)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 253:
      if (eof) ADVANCE(266);
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == ':') ADVANCE(268);
      if (lookahead == '<') ADVANCE(351);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '@') ADVANCE(312);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(327);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(253)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 254:
      if (eof) ADVANCE(266);
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == ':') ADVANCE(268);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '@') ADVANCE(312);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(328);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(254)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 255:
      if (eof) ADVANCE(266);
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == ':') ADVANCE(268);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(329);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(255)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 256:
      if (eof) ADVANCE(266);
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == '<') ADVANCE(351);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '@') ADVANCE(312);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(330);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(256)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 257:
      if (eof) ADVANCE(266);
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == '<') ADVANCE(351);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(331);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(257)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 258:
      if (eof) ADVANCE(266);
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '@') ADVANCE(312);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(332);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(258)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 259:
      if (eof) ADVANCE(266);
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(333);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(259)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 260:
      if (eof) ADVANCE(266);
      if (lookahead == ',') ADVANCE(270);
      if (lookahead == ':') ADVANCE(268);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(334);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(260)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 261:
      if (eof) ADVANCE(266);
      if (lookahead == ',') ADVANCE(270);
      if (lookahead == '@') ADVANCE(312);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(335);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(261)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 262:
      if (eof) ADVANCE(266);
      if (lookahead == ',') ADVANCE(270);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(336);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(262)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 263:
      if (eof) ADVANCE(266);
      if (lookahead == ':') ADVANCE(268);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(337);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(263)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 264:
      if (eof) ADVANCE(266);
      if (lookahead == 'e') ADVANCE(344);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(339);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(264)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 265:
      if (eof) ADVANCE(266);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(345);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(265)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 266:
      ACCEPT_TOKEN(ts_builtin_sym_end);
      END_STATE();
    case 267:
      ACCEPT_TOKEN(anon_sym_ATclass);
      END_STATE();
    case 268:
      ACCEPT_TOKEN(anon_sym_COLON);
      END_STATE();
    case 269:
      ACCEPT_TOKEN(anon_sym_ATtype);
      END_STATE();
    case 270:
      ACCEPT_TOKEN(anon_sym_COMMA);
      END_STATE();
    case 271:
      ACCEPT_TOKEN(anon_sym_ATparam);
      END_STATE();
    case 272:
      ACCEPT_TOKEN(anon_sym_DOT_DOT_DOT);
      END_STATE();
    case 273:
      ACCEPT_TOKEN(anon_sym_QMARK);
      END_STATE();
    case 274:
      ACCEPT_TOKEN(anon_sym_ATalias);
      END_STATE();
    case 275:
      ACCEPT_TOKEN(anon_sym_ATreturn);
      END_STATE();
    case 276:
      ACCEPT_TOKEN(anon_sym_ATfield);
      END_STATE();
    case 277:
      ACCEPT_TOKEN(anon_sym_ATpublic);
      END_STATE();
    case 278:
      ACCEPT_TOKEN(anon_sym_ATprotected);
      END_STATE();
    case 279:
      ACCEPT_TOKEN(anon_sym_ATprivate);
      END_STATE();
    case 280:
      ACCEPT_TOKEN(anon_sym_ATgeneric);
      END_STATE();
    case 281:
      ACCEPT_TOKEN(anon_sym_ATvararg);
      END_STATE();
    case 282:
      ACCEPT_TOKEN(anon_sym_ATdiagnostic);
      END_STATE();
    case 283:
      ACCEPT_TOKEN(anon_sym_ATmeta);
      END_STATE();
    case 284:
      ACCEPT_TOKEN(anon_sym_ATmodule);
      END_STATE();
    case 285:
      ACCEPT_TOKEN(anon_sym_ATsource);
      END_STATE();
    case 286:
      ACCEPT_TOKEN(anon_sym_DOT);
      END_STATE();
    case 287:
      ACCEPT_TOKEN(anon_sym_DOT);
      if (lookahead == '.') ADVANCE(30);
      END_STATE();
    case 288:
      ACCEPT_TOKEN(anon_sym_ATversion);
      END_STATE();
    case 289:
      ACCEPT_TOKEN(anon_sym_5_DOT1);
      END_STATE();
    case 290:
      ACCEPT_TOKEN(anon_sym_5_DOT2);
      END_STATE();
    case 291:
      ACCEPT_TOKEN(anon_sym_5_DOT3);
      END_STATE();
    case 292:
      ACCEPT_TOKEN(anon_sym_5_DOT4);
      END_STATE();
    case 293:
      ACCEPT_TOKEN(anon_sym_JIT);
      END_STATE();
    case 294:
      ACCEPT_TOKEN(anon_sym_ATpackage);
      END_STATE();
    case 295:
      ACCEPT_TOKEN(anon_sym_AToperator);
      END_STATE();
    case 296:
      ACCEPT_TOKEN(anon_sym_LPAREN);
      END_STATE();
    case 297:
      ACCEPT_TOKEN(anon_sym_RPAREN);
      END_STATE();
    case 298:
      ACCEPT_TOKEN(anon_sym_ATnodiscard);
      END_STATE();
    case 299:
      ACCEPT_TOKEN(anon_sym_ATdeprecated);
      END_STATE();
    case 300:
      ACCEPT_TOKEN(anon_sym_ATcast);
      END_STATE();
    case 301:
      ACCEPT_TOKEN(anon_sym_ATasync);
      END_STATE();
    case 302:
      ACCEPT_TOKEN(anon_sym_AToverload);
      END_STATE();
    case 303:
      ACCEPT_TOKEN(anon_sym_ATenum);
      END_STATE();
    case 304:
      ACCEPT_TOKEN(anon_sym_ATlanguage);
      END_STATE();
    case 305:
      ACCEPT_TOKEN(anon_sym_ATsee);
      END_STATE();
    case 306:
      ACCEPT_TOKEN(anon_sym_public);
      END_STATE();
    case 307:
      ACCEPT_TOKEN(anon_sym_public);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 308:
      ACCEPT_TOKEN(anon_sym_protected);
      END_STATE();
    case 309:
      ACCEPT_TOKEN(anon_sym_protected);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 310:
      ACCEPT_TOKEN(anon_sym_private);
      END_STATE();
    case 311:
      ACCEPT_TOKEN(anon_sym_private);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 312:
      ACCEPT_TOKEN(anon_sym_AT);
      END_STATE();
    case 313:
      ACCEPT_TOKEN(anon_sym_extends);
      END_STATE();
    case 314:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == '(') ADVANCE(296);
      if (lookahead == ',') ADVANCE(270);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == ':') ADVANCE(268);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '@') ADVANCE(312);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(314);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(4)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 315:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == '(') ADVANCE(296);
      if (lookahead == ',') ADVANCE(270);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '@') ADVANCE(312);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(315);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(5)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 316:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == '(') ADVANCE(296);
      if (lookahead == ',') ADVANCE(270);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(316);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(6)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 317:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == '(') ADVANCE(296);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == ':') ADVANCE(268);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '@') ADVANCE(312);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(317);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(7)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 318:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == '(') ADVANCE(296);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '@') ADVANCE(312);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(318);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(8)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 319:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == '(') ADVANCE(296);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(319);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(9)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 320:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == ',') ADVANCE(270);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == ':') ADVANCE(268);
      if (lookahead == '<') ADVANCE(351);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '@') ADVANCE(312);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(320);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(10)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 321:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == ',') ADVANCE(270);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == ':') ADVANCE(268);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '@') ADVANCE(312);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(321);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(11)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 322:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == ',') ADVANCE(270);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == ':') ADVANCE(268);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(322);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(12)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 323:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == ',') ADVANCE(270);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == '<') ADVANCE(351);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '@') ADVANCE(312);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(323);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(13)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 324:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == ',') ADVANCE(270);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == '<') ADVANCE(351);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(324);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(14)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 325:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == ',') ADVANCE(270);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '@') ADVANCE(312);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(325);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(15)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 326:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == ',') ADVANCE(270);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(326);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(16)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 327:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == ':') ADVANCE(268);
      if (lookahead == '<') ADVANCE(351);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '@') ADVANCE(312);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(327);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(17)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 328:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == ':') ADVANCE(268);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '@') ADVANCE(312);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(328);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(18)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 329:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == ':') ADVANCE(268);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(329);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(19)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 330:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == '<') ADVANCE(351);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '@') ADVANCE(312);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(330);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(20)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 331:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == '<') ADVANCE(351);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(331);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(21)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 332:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '@') ADVANCE(312);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(332);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(22)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 333:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '#') ADVANCE(363);
      if (lookahead == '.') ADVANCE(286);
      if (lookahead == '?') ADVANCE(273);
      if (lookahead == '[') ADVANCE(347);
      if (lookahead == '|') ADVANCE(356);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(333);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(23)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 334:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == ',') ADVANCE(270);
      if (lookahead == ':') ADVANCE(268);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(334);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(25)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 335:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == ',') ADVANCE(270);
      if (lookahead == '@') ADVANCE(312);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(335);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(26)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 336:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == ',') ADVANCE(270);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(336);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(27)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 337:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == ':') ADVANCE(268);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(337);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(35)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 338:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == 'd') ADVANCE(342);
      if (lookahead != 0 &&
          lookahead != '\n' &&
          lookahead != '\r') ADVANCE(346);
      END_STATE();
    case 339:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == 'e') ADVANCE(344);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(339);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(100)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 340:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == 'e') ADVANCE(341);
      if (lookahead != 0 &&
          lookahead != '\n' &&
          lookahead != '\r') ADVANCE(346);
      END_STATE();
    case 341:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == 'n') ADVANCE(338);
      if (lookahead != 0 &&
          lookahead != '\n' &&
          lookahead != '\r') ADVANCE(346);
      END_STATE();
    case 342:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == 's') ADVANCE(313);
      if (lookahead != 0 &&
          lookahead != '\n' &&
          lookahead != '\r') ADVANCE(346);
      END_STATE();
    case 343:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == 't') ADVANCE(340);
      if (lookahead != 0 &&
          lookahead != '\n' &&
          lookahead != '\r') ADVANCE(346);
      END_STATE();
    case 344:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == 'x') ADVANCE(343);
      if (lookahead != 0 &&
          lookahead != '\n' &&
          lookahead != '\r') ADVANCE(346);
      END_STATE();
    case 345:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '\t' ||
          lookahead == ' ') ADVANCE(345);
      if (lookahead == '\n' ||
          lookahead == '\r') SKIP(237)
      if (lookahead != 0) ADVANCE(346);
      END_STATE();
    case 346:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead != 0 &&
          lookahead != '\n' &&
          lookahead != '\r') ADVANCE(346);
      END_STATE();
    case 347:
      ACCEPT_TOKEN(anon_sym_LBRACK);
      END_STATE();
    case 348:
      ACCEPT_TOKEN(anon_sym_RBRACK);
      END_STATE();
    case 349:
      ACCEPT_TOKEN(anon_sym_table);
      END_STATE();
    case 350:
      ACCEPT_TOKEN(anon_sym_table);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 351:
      ACCEPT_TOKEN(anon_sym_LT);
      END_STATE();
    case 352:
      ACCEPT_TOKEN(anon_sym_GT);
      END_STATE();
    case 353:
      ACCEPT_TOKEN(anon_sym_LBRACE);
      END_STATE();
    case 354:
      ACCEPT_TOKEN(anon_sym_RBRACK2);
      END_STATE();
    case 355:
      ACCEPT_TOKEN(anon_sym_RBRACE);
      END_STATE();
    case 356:
      ACCEPT_TOKEN(anon_sym_PIPE);
      END_STATE();
    case 357:
      ACCEPT_TOKEN(anon_sym_fun);
      if (lookahead == 'c') ADVANCE(211);
      END_STATE();
    case 358:
      ACCEPT_TOKEN(anon_sym_fun);
      if (lookahead == 'c') ADVANCE(443);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 359:
      ACCEPT_TOKEN(anon_sym_function);
      END_STATE();
    case 360:
      ACCEPT_TOKEN(anon_sym_function);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 361:
      ACCEPT_TOKEN(anon_sym_self);
      END_STATE();
    case 362:
      ACCEPT_TOKEN(anon_sym_self);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 363:
      ACCEPT_TOKEN(anon_sym_POUND);
      END_STATE();
    case 364:
      ACCEPT_TOKEN(anon_sym_DQUOTE);
      END_STATE();
    case 365:
      ACCEPT_TOKEN(aux_sym_literal_type_token1);
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ') ADVANCE(365);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(366);
      END_STATE();
    case 366:
      ACCEPT_TOKEN(aux_sym_literal_type_token1);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(366);
      END_STATE();
    case 367:
      ACCEPT_TOKEN(anon_sym_any);
      END_STATE();
    case 368:
      ACCEPT_TOKEN(anon_sym_any);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 369:
      ACCEPT_TOKEN(anon_sym_boolean);
      END_STATE();
    case 370:
      ACCEPT_TOKEN(anon_sym_boolean);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 371:
      ACCEPT_TOKEN(anon_sym_CFunction);
      END_STATE();
    case 372:
      ACCEPT_TOKEN(anon_sym_CFunction);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 373:
      ACCEPT_TOKEN(anon_sym_nil);
      END_STATE();
    case 374:
      ACCEPT_TOKEN(anon_sym_nil);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 375:
      ACCEPT_TOKEN(anon_sym_number);
      END_STATE();
    case 376:
      ACCEPT_TOKEN(anon_sym_number);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 377:
      ACCEPT_TOKEN(anon_sym_string);
      END_STATE();
    case 378:
      ACCEPT_TOKEN(anon_sym_string);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 379:
      ACCEPT_TOKEN(anon_sym_userdata);
      END_STATE();
    case 380:
      ACCEPT_TOKEN(anon_sym_userdata);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 381:
      ACCEPT_TOKEN(anon_sym_void);
      END_STATE();
    case 382:
      ACCEPT_TOKEN(anon_sym_void);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 383:
      ACCEPT_TOKEN(sym_string);
      if (lookahead == '\'') ADVANCE(383);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(24);
      END_STATE();
    case 384:
      ACCEPT_TOKEN(sym_number);
      if (lookahead == '.') ADVANCE(33);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(385);
      END_STATE();
    case 385:
      ACCEPT_TOKEN(sym_number);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(385);
      END_STATE();
    case 386:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'F') ADVANCE(450);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 387:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'a') ADVANCE(394);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('b' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 388:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'a') ADVANCE(380);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('b' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 389:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'a') ADVANCE(444);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('b' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 390:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'a') ADVANCE(429);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('b' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 391:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'a') ADVANCE(446);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('b' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 392:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'b') ADVANCE(423);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 393:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'b') ADVANCE(407);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 394:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'b') ADVANCE(422);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 395:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'c') ADVANCE(307);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 396:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'c') ADVANCE(447);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 397:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'c') ADVANCE(448);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 398:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'd') ADVANCE(382);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 399:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'd') ADVANCE(309);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 400:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'd') ADVANCE(389);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 401:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'e') ADVANCE(350);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 402:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'e') ADVANCE(311);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 403:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'e') ADVANCE(390);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 404:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'e') ADVANCE(440);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 405:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'e') ADVANCE(420);
      if (lookahead == 't') ADVANCE(439);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 406:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'e') ADVANCE(420);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 407:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'e') ADVANCE(437);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 408:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'e') ADVANCE(399);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 409:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'e') ADVANCE(396);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 410:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'f') ADVANCE(362);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 411:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'g') ADVANCE(378);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 412:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'i') ADVANCE(419);
      if (lookahead == 'u') ADVANCE(424);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 413:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'i') ADVANCE(398);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 414:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'i') ADVANCE(451);
      if (lookahead == 'o') ADVANCE(445);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 415:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'i') ADVANCE(395);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 416:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'i') ADVANCE(428);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 417:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'i') ADVANCE(435);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 418:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'i') ADVANCE(436);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 419:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'l') ADVANCE(374);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 420:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'l') ADVANCE(410);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 421:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'l') ADVANCE(403);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 422:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'l') ADVANCE(401);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 423:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'l') ADVANCE(415);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 424:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'm') ADVANCE(393);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 425:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'n') ADVANCE(452);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 426:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'n') ADVANCE(358);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 427:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'n') ADVANCE(397);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 428:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'n') ADVANCE(411);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 429:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'n') ADVANCE(370);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 430:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'n') ADVANCE(360);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 431:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'n') ADVANCE(372);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 432:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'o') ADVANCE(413);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 433:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'o') ADVANCE(421);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 434:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'o') ADVANCE(433);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 435:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'o') ADVANCE(430);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 436:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'o') ADVANCE(431);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 437:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'r') ADVANCE(376);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 438:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'r') ADVANCE(414);
      if (lookahead == 'u') ADVANCE(392);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 439:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'r') ADVANCE(416);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 440:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'r') ADVANCE(400);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 441:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 's') ADVANCE(404);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 442:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 't') ADVANCE(439);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 443:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 't') ADVANCE(417);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 444:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 't') ADVANCE(388);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 445:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 't') ADVANCE(409);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 446:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 't') ADVANCE(402);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 447:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 't') ADVANCE(408);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 448:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 't') ADVANCE(418);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 449:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'u') ADVANCE(426);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 450:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'u') ADVANCE(427);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 451:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'v') ADVANCE(391);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 452:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'y') ADVANCE(368);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 453:
      ACCEPT_TOKEN(sym_identifier);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(453);
      END_STATE();
    case 454:
      ACCEPT_TOKEN(sym_diagnostic_identifier);
      if (lookahead == '-' ||
          ('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(454);
      END_STATE();
    default:
      return false;
  }
}

static const TSLexMode ts_lex_modes[STATE_COUNT] = {
  [0] = {.lex_state = 0},
  [1] = {.lex_state = 1},
  [2] = {.lex_state = 1},
  [3] = {.lex_state = 2},
  [4] = {.lex_state = 2},
  [5] = {.lex_state = 2},
  [6] = {.lex_state = 2},
  [7] = {.lex_state = 2},
  [8] = {.lex_state = 2},
  [9] = {.lex_state = 2},
  [10] = {.lex_state = 2},
  [11] = {.lex_state = 1},
  [12] = {.lex_state = 1},
  [13] = {.lex_state = 1},
  [14] = {.lex_state = 1},
  [15] = {.lex_state = 1},
  [16] = {.lex_state = 1},
  [17] = {.lex_state = 1},
  [18] = {.lex_state = 1},
  [19] = {.lex_state = 1},
  [20] = {.lex_state = 1},
  [21] = {.lex_state = 1},
  [22] = {.lex_state = 1},
  [23] = {.lex_state = 1},
  [24] = {.lex_state = 1},
  [25] = {.lex_state = 1},
  [26] = {.lex_state = 1},
  [27] = {.lex_state = 1},
  [28] = {.lex_state = 1},
  [29] = {.lex_state = 1},
  [30] = {.lex_state = 1},
  [31] = {.lex_state = 1},
  [32] = {.lex_state = 1},
  [33] = {.lex_state = 1},
  [34] = {.lex_state = 1},
  [35] = {.lex_state = 1},
  [36] = {.lex_state = 1},
  [37] = {.lex_state = 1},
  [38] = {.lex_state = 1},
  [39] = {.lex_state = 1},
  [40] = {.lex_state = 1},
  [41] = {.lex_state = 1},
  [42] = {.lex_state = 1},
  [43] = {.lex_state = 1},
  [44] = {.lex_state = 1},
  [45] = {.lex_state = 1},
  [46] = {.lex_state = 1},
  [47] = {.lex_state = 1},
  [48] = {.lex_state = 1},
  [49] = {.lex_state = 1},
  [50] = {.lex_state = 1},
  [51] = {.lex_state = 1},
  [52] = {.lex_state = 1},
  [53] = {.lex_state = 1},
  [54] = {.lex_state = 1},
  [55] = {.lex_state = 1},
  [56] = {.lex_state = 1},
  [57] = {.lex_state = 1},
  [58] = {.lex_state = 1},
  [59] = {.lex_state = 1},
  [60] = {.lex_state = 1},
  [61] = {.lex_state = 1},
  [62] = {.lex_state = 1},
  [63] = {.lex_state = 1},
  [64] = {.lex_state = 1},
  [65] = {.lex_state = 1},
  [66] = {.lex_state = 1},
  [67] = {.lex_state = 1},
  [68] = {.lex_state = 1},
  [69] = {.lex_state = 1},
  [70] = {.lex_state = 1},
  [71] = {.lex_state = 1},
  [72] = {.lex_state = 1},
  [73] = {.lex_state = 1},
  [74] = {.lex_state = 1},
  [75] = {.lex_state = 1},
  [76] = {.lex_state = 1},
  [77] = {.lex_state = 1},
  [78] = {.lex_state = 1},
  [79] = {.lex_state = 1},
  [80] = {.lex_state = 1},
  [81] = {.lex_state = 1},
  [82] = {.lex_state = 1},
  [83] = {.lex_state = 1},
  [84] = {.lex_state = 1},
  [85] = {.lex_state = 1},
  [86] = {.lex_state = 1},
  [87] = {.lex_state = 1},
  [88] = {.lex_state = 1},
  [89] = {.lex_state = 1},
  [90] = {.lex_state = 1},
  [91] = {.lex_state = 1},
  [92] = {.lex_state = 1},
  [93] = {.lex_state = 1},
  [94] = {.lex_state = 1},
  [95] = {.lex_state = 1},
  [96] = {.lex_state = 1},
  [97] = {.lex_state = 1},
  [98] = {.lex_state = 1},
  [99] = {.lex_state = 1},
  [100] = {.lex_state = 1},
  [101] = {.lex_state = 1},
  [102] = {.lex_state = 1},
  [103] = {.lex_state = 1},
  [104] = {.lex_state = 1},
  [105] = {.lex_state = 1},
  [106] = {.lex_state = 1},
  [107] = {.lex_state = 1},
  [108] = {.lex_state = 1},
  [109] = {.lex_state = 1},
  [110] = {.lex_state = 1},
  [111] = {.lex_state = 1},
  [112] = {.lex_state = 1},
  [113] = {.lex_state = 1},
  [114] = {.lex_state = 1},
  [115] = {.lex_state = 1},
  [116] = {.lex_state = 1},
  [117] = {.lex_state = 1},
  [118] = {.lex_state = 1},
  [119] = {.lex_state = 1},
  [120] = {.lex_state = 1},
  [121] = {.lex_state = 1},
  [122] = {.lex_state = 1},
  [123] = {.lex_state = 1},
  [124] = {.lex_state = 1},
  [125] = {.lex_state = 1},
  [126] = {.lex_state = 1},
  [127] = {.lex_state = 1},
  [128] = {.lex_state = 1},
  [129] = {.lex_state = 1},
  [130] = {.lex_state = 1},
  [131] = {.lex_state = 1},
  [132] = {.lex_state = 1},
  [133] = {.lex_state = 1},
  [134] = {.lex_state = 1},
  [135] = {.lex_state = 1},
  [136] = {.lex_state = 1},
  [137] = {.lex_state = 1},
  [138] = {.lex_state = 1},
  [139] = {.lex_state = 1},
  [140] = {.lex_state = 1},
  [141] = {.lex_state = 1},
  [142] = {.lex_state = 1},
  [143] = {.lex_state = 1},
  [144] = {.lex_state = 1},
  [145] = {.lex_state = 1},
  [146] = {.lex_state = 1},
  [147] = {.lex_state = 1},
  [148] = {.lex_state = 1},
  [149] = {.lex_state = 1},
  [150] = {.lex_state = 1},
  [151] = {.lex_state = 247},
  [152] = {.lex_state = 240},
  [153] = {.lex_state = 246},
  [154] = {.lex_state = 247},
  [155] = {.lex_state = 247},
  [156] = {.lex_state = 247},
  [157] = {.lex_state = 247},
  [158] = {.lex_state = 247},
  [159] = {.lex_state = 251},
  [160] = {.lex_state = 247},
  [161] = {.lex_state = 247},
  [162] = {.lex_state = 247},
  [163] = {.lex_state = 247},
  [164] = {.lex_state = 251},
  [165] = {.lex_state = 251},
  [166] = {.lex_state = 247},
  [167] = {.lex_state = 251},
  [168] = {.lex_state = 247},
  [169] = {.lex_state = 247},
  [170] = {.lex_state = 247},
  [171] = {.lex_state = 253},
  [172] = {.lex_state = 247},
  [173] = {.lex_state = 247},
  [174] = {.lex_state = 247},
  [175] = {.lex_state = 243},
  [176] = {.lex_state = 251},
  [177] = {.lex_state = 247},
  [178] = {.lex_state = 247},
  [179] = {.lex_state = 241},
  [180] = {.lex_state = 249},
  [181] = {.lex_state = 251},
  [182] = {.lex_state = 254},
  [183] = {.lex_state = 247},
  [184] = {.lex_state = 251},
  [185] = {.lex_state = 247},
  [186] = {.lex_state = 247},
  [187] = {.lex_state = 247},
  [188] = {.lex_state = 247},
  [189] = {.lex_state = 247},
  [190] = {.lex_state = 251},
  [191] = {.lex_state = 247},
  [192] = {.lex_state = 247},
  [193] = {.lex_state = 247},
  [194] = {.lex_state = 247},
  [195] = {.lex_state = 247},
  [196] = {.lex_state = 247},
  [197] = {.lex_state = 247},
  [198] = {.lex_state = 247},
  [199] = {.lex_state = 254},
  [200] = {.lex_state = 258},
  [201] = {.lex_state = 250},
  [202] = {.lex_state = 254},
  [203] = {.lex_state = 254},
  [204] = {.lex_state = 248},
  [205] = {.lex_state = 254},
  [206] = {.lex_state = 248},
  [207] = {.lex_state = 254},
  [208] = {.lex_state = 258},
  [209] = {.lex_state = 252},
  [210] = {.lex_state = 258},
  [211] = {.lex_state = 258},
  [212] = {.lex_state = 254},
  [213] = {.lex_state = 252},
  [214] = {.lex_state = 254},
  [215] = {.lex_state = 252},
  [216] = {.lex_state = 252},
  [217] = {.lex_state = 252},
  [218] = {.lex_state = 252},
  [219] = {.lex_state = 254},
  [220] = {.lex_state = 252},
  [221] = {.lex_state = 254},
  [222] = {.lex_state = 254},
  [223] = {.lex_state = 254},
  [224] = {.lex_state = 258},
  [225] = {.lex_state = 254},
  [226] = {.lex_state = 254},
  [227] = {.lex_state = 254},
  [228] = {.lex_state = 254},
  [229] = {.lex_state = 244},
  [230] = {.lex_state = 256},
  [231] = {.lex_state = 251},
  [232] = {.lex_state = 254},
  [233] = {.lex_state = 258},
  [234] = {.lex_state = 248},
  [235] = {.lex_state = 254},
  [236] = {.lex_state = 254},
  [237] = {.lex_state = 242},
  [238] = {.lex_state = 251},
  [239] = {.lex_state = 251},
  [240] = {.lex_state = 254},
  [241] = {.lex_state = 254},
  [242] = {.lex_state = 254},
  [243] = {.lex_state = 254},
  [244] = {.lex_state = 251},
  [245] = {.lex_state = 251},
  [246] = {.lex_state = 251},
  [247] = {.lex_state = 251},
  [248] = {.lex_state = 254},
  [249] = {.lex_state = 251},
  [250] = {.lex_state = 251},
  [251] = {.lex_state = 251},
  [252] = {.lex_state = 251},
  [253] = {.lex_state = 251},
  [254] = {.lex_state = 251},
  [255] = {.lex_state = 258},
  [256] = {.lex_state = 258},
  [257] = {.lex_state = 251},
  [258] = {.lex_state = 254},
  [259] = {.lex_state = 251},
  [260] = {.lex_state = 254},
  [261] = {.lex_state = 252},
  [262] = {.lex_state = 251},
  [263] = {.lex_state = 251},
  [264] = {.lex_state = 251},
  [265] = {.lex_state = 252},
  [266] = {.lex_state = 252},
  [267] = {.lex_state = 251},
  [268] = {.lex_state = 251},
  [269] = {.lex_state = 252},
  [270] = {.lex_state = 1},
  [271] = {.lex_state = 1},
  [272] = {.lex_state = 1},
  [273] = {.lex_state = 1},
  [274] = {.lex_state = 252},
  [275] = {.lex_state = 1},
  [276] = {.lex_state = 252},
  [277] = {.lex_state = 258},
  [278] = {.lex_state = 258},
  [279] = {.lex_state = 258},
  [280] = {.lex_state = 258},
  [281] = {.lex_state = 252},
  [282] = {.lex_state = 258},
  [283] = {.lex_state = 255},
  [284] = {.lex_state = 258},
  [285] = {.lex_state = 258},
  [286] = {.lex_state = 258},
  [287] = {.lex_state = 258},
  [288] = {.lex_state = 252},
  [289] = {.lex_state = 252},
  [290] = {.lex_state = 258},
  [291] = {.lex_state = 255},
  [292] = {.lex_state = 258},
  [293] = {.lex_state = 252},
  [294] = {.lex_state = 255},
  [295] = {.lex_state = 258},
  [296] = {.lex_state = 258},
  [297] = {.lex_state = 258},
  [298] = {.lex_state = 252},
  [299] = {.lex_state = 252},
  [300] = {.lex_state = 258},
  [301] = {.lex_state = 258},
  [302] = {.lex_state = 252},
  [303] = {.lex_state = 1},
  [304] = {.lex_state = 258},
  [305] = {.lex_state = 258},
  [306] = {.lex_state = 252},
  [307] = {.lex_state = 258},
  [308] = {.lex_state = 257},
  [309] = {.lex_state = 245},
  [310] = {.lex_state = 1},
  [311] = {.lex_state = 1},
  [312] = {.lex_state = 1},
  [313] = {.lex_state = 1},
  [314] = {.lex_state = 1},
  [315] = {.lex_state = 1},
  [316] = {.lex_state = 252},
  [317] = {.lex_state = 1},
  [318] = {.lex_state = 1},
  [319] = {.lex_state = 1},
  [320] = {.lex_state = 1},
  [321] = {.lex_state = 252},
  [322] = {.lex_state = 252},
  [323] = {.lex_state = 1},
  [324] = {.lex_state = 252},
  [325] = {.lex_state = 1},
  [326] = {.lex_state = 1},
  [327] = {.lex_state = 252},
  [328] = {.lex_state = 1},
  [329] = {.lex_state = 1},
  [330] = {.lex_state = 1},
  [331] = {.lex_state = 252},
  [332] = {.lex_state = 252},
  [333] = {.lex_state = 1},
  [334] = {.lex_state = 1},
  [335] = {.lex_state = 1},
  [336] = {.lex_state = 252},
  [337] = {.lex_state = 1},
  [338] = {.lex_state = 1},
  [339] = {.lex_state = 252},
  [340] = {.lex_state = 1},
  [341] = {.lex_state = 1},
  [342] = {.lex_state = 1},
  [343] = {.lex_state = 1},
  [344] = {.lex_state = 1},
  [345] = {.lex_state = 1},
  [346] = {.lex_state = 1},
  [347] = {.lex_state = 1},
  [348] = {.lex_state = 1},
  [349] = {.lex_state = 1},
  [350] = {.lex_state = 1},
  [351] = {.lex_state = 1},
  [352] = {.lex_state = 1},
  [353] = {.lex_state = 1},
  [354] = {.lex_state = 259},
  [355] = {.lex_state = 259},
  [356] = {.lex_state = 1},
  [357] = {.lex_state = 259},
  [358] = {.lex_state = 259},
  [359] = {.lex_state = 259},
  [360] = {.lex_state = 259},
  [361] = {.lex_state = 259},
  [362] = {.lex_state = 39},
  [363] = {.lex_state = 259},
  [364] = {.lex_state = 1},
  [365] = {.lex_state = 259},
  [366] = {.lex_state = 1},
  [367] = {.lex_state = 259},
  [368] = {.lex_state = 259},
  [369] = {.lex_state = 259},
  [370] = {.lex_state = 259},
  [371] = {.lex_state = 259},
  [372] = {.lex_state = 1},
  [373] = {.lex_state = 1},
  [374] = {.lex_state = 259},
  [375] = {.lex_state = 259},
  [376] = {.lex_state = 259},
  [377] = {.lex_state = 259},
  [378] = {.lex_state = 259},
  [379] = {.lex_state = 259},
  [380] = {.lex_state = 1},
  [381] = {.lex_state = 259},
  [382] = {.lex_state = 259},
  [383] = {.lex_state = 1},
  [384] = {.lex_state = 1},
  [385] = {.lex_state = 1},
  [386] = {.lex_state = 259},
  [387] = {.lex_state = 259},
  [388] = {.lex_state = 1},
  [389] = {.lex_state = 1},
  [390] = {.lex_state = 261},
  [391] = {.lex_state = 1},
  [392] = {.lex_state = 1},
  [393] = {.lex_state = 1},
  [394] = {.lex_state = 1},
  [395] = {.lex_state = 1},
  [396] = {.lex_state = 1},
  [397] = {.lex_state = 1},
  [398] = {.lex_state = 1},
  [399] = {.lex_state = 1},
  [400] = {.lex_state = 1},
  [401] = {.lex_state = 1},
  [402] = {.lex_state = 1},
  [403] = {.lex_state = 1},
  [404] = {.lex_state = 1},
  [405] = {.lex_state = 1},
  [406] = {.lex_state = 1},
  [407] = {.lex_state = 1},
  [408] = {.lex_state = 1},
  [409] = {.lex_state = 1},
  [410] = {.lex_state = 1},
  [411] = {.lex_state = 1},
  [412] = {.lex_state = 1},
  [413] = {.lex_state = 261},
  [414] = {.lex_state = 34},
  [415] = {.lex_state = 260},
  [416] = {.lex_state = 32},
  [417] = {.lex_state = 262},
  [418] = {.lex_state = 262},
  [419] = {.lex_state = 262},
  [420] = {.lex_state = 262},
  [421] = {.lex_state = 0},
  [422] = {.lex_state = 0},
  [423] = {.lex_state = 31},
  [424] = {.lex_state = 0},
  [425] = {.lex_state = 263},
  [426] = {.lex_state = 31},
  [427] = {.lex_state = 0},
  [428] = {.lex_state = 0},
  [429] = {.lex_state = 263},
  [430] = {.lex_state = 0},
  [431] = {.lex_state = 0},
  [432] = {.lex_state = 0},
  [433] = {.lex_state = 0},
  [434] = {.lex_state = 0},
  [435] = {.lex_state = 0},
  [436] = {.lex_state = 0},
  [437] = {.lex_state = 0},
  [438] = {.lex_state = 0},
  [439] = {.lex_state = 0},
  [440] = {.lex_state = 263},
  [441] = {.lex_state = 0},
  [442] = {.lex_state = 0},
  [443] = {.lex_state = 0},
  [444] = {.lex_state = 0},
  [445] = {.lex_state = 0},
  [446] = {.lex_state = 0},
  [447] = {.lex_state = 0},
  [448] = {.lex_state = 0},
  [449] = {.lex_state = 0},
  [450] = {.lex_state = 0},
  [451] = {.lex_state = 0},
  [452] = {.lex_state = 0},
  [453] = {.lex_state = 0},
  [454] = {.lex_state = 31},
  [455] = {.lex_state = 0},
  [456] = {.lex_state = 0},
  [457] = {.lex_state = 0},
  [458] = {.lex_state = 0},
  [459] = {.lex_state = 0},
  [460] = {.lex_state = 0},
  [461] = {.lex_state = 0},
  [462] = {.lex_state = 31},
  [463] = {.lex_state = 0},
  [464] = {.lex_state = 0},
  [465] = {.lex_state = 263},
  [466] = {.lex_state = 0},
  [467] = {.lex_state = 0},
  [468] = {.lex_state = 0},
  [469] = {.lex_state = 0},
  [470] = {.lex_state = 0},
  [471] = {.lex_state = 0},
  [472] = {.lex_state = 31},
  [473] = {.lex_state = 0},
  [474] = {.lex_state = 0},
  [475] = {.lex_state = 0},
  [476] = {.lex_state = 0},
  [477] = {.lex_state = 0},
  [478] = {.lex_state = 31},
  [479] = {.lex_state = 263},
  [480] = {.lex_state = 0},
  [481] = {.lex_state = 31},
  [482] = {.lex_state = 264},
  [483] = {.lex_state = 0},
  [484] = {.lex_state = 0},
  [485] = {.lex_state = 0},
  [486] = {.lex_state = 0},
  [487] = {.lex_state = 0},
  [488] = {.lex_state = 0},
  [489] = {.lex_state = 0},
  [490] = {.lex_state = 0},
  [491] = {.lex_state = 0},
  [492] = {.lex_state = 31},
  [493] = {.lex_state = 0},
  [494] = {.lex_state = 0},
  [495] = {.lex_state = 0},
  [496] = {.lex_state = 0},
  [497] = {.lex_state = 0},
  [498] = {.lex_state = 0},
  [499] = {.lex_state = 0},
  [500] = {.lex_state = 0},
  [501] = {.lex_state = 263},
  [502] = {.lex_state = 0},
  [503] = {.lex_state = 262},
  [504] = {.lex_state = 265},
  [505] = {.lex_state = 0},
  [506] = {.lex_state = 0},
  [507] = {.lex_state = 0},
  [508] = {.lex_state = 265},
  [509] = {.lex_state = 265},
  [510] = {.lex_state = 265},
  [511] = {.lex_state = 0},
  [512] = {.lex_state = 0},
  [513] = {.lex_state = 265},
  [514] = {.lex_state = 0},
  [515] = {.lex_state = 0},
  [516] = {.lex_state = 0},
  [517] = {.lex_state = 0},
  [518] = {.lex_state = 0},
  [519] = {.lex_state = 0},
  [520] = {.lex_state = 265},
  [521] = {.lex_state = 265},
  [522] = {.lex_state = 0},
  [523] = {.lex_state = 265},
  [524] = {.lex_state = 0},
  [525] = {.lex_state = 0},
  [526] = {.lex_state = 31},
  [527] = {.lex_state = 265},
  [528] = {.lex_state = 0},
  [529] = {.lex_state = 0},
  [530] = {.lex_state = 0},
  [531] = {.lex_state = 0},
  [532] = {.lex_state = 0},
  [533] = {.lex_state = 0},
  [534] = {.lex_state = 0},
  [535] = {.lex_state = 0},
  [536] = {.lex_state = 0},
  [537] = {.lex_state = 265},
  [538] = {.lex_state = 0},
  [539] = {.lex_state = 0},
  [540] = {.lex_state = 0},
  [541] = {.lex_state = 31},
  [542] = {.lex_state = 265},
  [543] = {.lex_state = 0},
  [544] = {.lex_state = 0},
  [545] = {.lex_state = 0},
  [546] = {.lex_state = 0},
  [547] = {.lex_state = 0},
  [548] = {.lex_state = 0},
  [549] = {.lex_state = 0},
  [550] = {.lex_state = 265},
  [551] = {.lex_state = 265},
  [552] = {.lex_state = 0},
  [553] = {.lex_state = 0},
  [554] = {.lex_state = 0},
  [555] = {.lex_state = 0},
  [556] = {.lex_state = 31},
  [557] = {.lex_state = 0},
  [558] = {.lex_state = 0},
  [559] = {.lex_state = 31},
  [560] = {.lex_state = 0},
  [561] = {.lex_state = 0},
  [562] = {.lex_state = 31},
  [563] = {.lex_state = 31},
  [564] = {.lex_state = 2},
  [565] = {.lex_state = 0},
  [566] = {.lex_state = 0},
  [567] = {.lex_state = 0},
  [568] = {.lex_state = 0},
  [569] = {.lex_state = 0},
  [570] = {.lex_state = 0},
  [571] = {.lex_state = 238},
  [572] = {.lex_state = 0},
  [573] = {.lex_state = 1},
  [574] = {.lex_state = 2},
  [575] = {.lex_state = 0},
  [576] = {.lex_state = 0},
  [577] = {.lex_state = 31},
  [578] = {.lex_state = 0},
  [579] = {.lex_state = 365},
  [580] = {.lex_state = 31},
  [581] = {.lex_state = 1},
  [582] = {.lex_state = 0},
  [583] = {.lex_state = 0},
  [584] = {.lex_state = 0},
  [585] = {.lex_state = 31},
  [586] = {.lex_state = 2},
  [587] = {.lex_state = 0},
  [588] = {.lex_state = 31},
  [589] = {.lex_state = 31},
  [590] = {.lex_state = 0},
  [591] = {.lex_state = 365},
  [592] = {.lex_state = 0},
  [593] = {.lex_state = 0},
  [594] = {.lex_state = 0},
  [595] = {.lex_state = 0},
  [596] = {.lex_state = 2},
  [597] = {.lex_state = 31},
  [598] = {.lex_state = 0},
  [599] = {.lex_state = 0},
  [600] = {.lex_state = 365},
  [601] = {.lex_state = 0},
  [602] = {.lex_state = 265},
  [603] = {.lex_state = 0},
  [604] = {.lex_state = 0},
  [605] = {.lex_state = 0},
  [606] = {.lex_state = 0},
  [607] = {.lex_state = 1},
  [608] = {.lex_state = 0},
  [609] = {.lex_state = 365},
  [610] = {.lex_state = 0},
  [611] = {.lex_state = 0},
  [612] = {.lex_state = 0},
  [613] = {.lex_state = 2},
  [614] = {.lex_state = 31},
  [615] = {.lex_state = 1},
  [616] = {.lex_state = 0},
  [617] = {.lex_state = 0},
  [618] = {.lex_state = 365},
  [619] = {.lex_state = 365},
  [620] = {.lex_state = 0},
  [621] = {.lex_state = 0},
  [622] = {.lex_state = 0},
  [623] = {.lex_state = 0},
  [624] = {.lex_state = 31},
  [625] = {.lex_state = 31},
  [626] = {.lex_state = 0},
  [627] = {.lex_state = 365},
  [628] = {.lex_state = 31},
  [629] = {.lex_state = 0},
  [630] = {.lex_state = 0},
  [631] = {.lex_state = 0},
  [632] = {.lex_state = 31},
  [633] = {.lex_state = 0},
  [634] = {.lex_state = 31},
  [635] = {.lex_state = 0},
  [636] = {.lex_state = 0},
  [637] = {.lex_state = 31},
  [638] = {.lex_state = 2},
  [639] = {.lex_state = 31},
  [640] = {.lex_state = 31},
  [641] = {.lex_state = 0},
  [642] = {.lex_state = 238},
  [643] = {.lex_state = 1},
  [644] = {.lex_state = 0},
  [645] = {.lex_state = 0},
  [646] = {.lex_state = 0},
  [647] = {.lex_state = 0},
  [648] = {.lex_state = 0},
  [649] = {.lex_state = 0},
  [650] = {.lex_state = 0},
  [651] = {.lex_state = 0},
  [652] = {.lex_state = 0},
  [653] = {.lex_state = 0},
  [654] = {.lex_state = 0},
  [655] = {.lex_state = 0},
  [656] = {.lex_state = 2},
  [657] = {.lex_state = 0},
  [658] = {.lex_state = 31},
  [659] = {.lex_state = 0},
  [660] = {.lex_state = 0},
  [661] = {.lex_state = 0},
  [662] = {.lex_state = 0},
  [663] = {.lex_state = 0},
  [664] = {.lex_state = 31},
  [665] = {.lex_state = 0},
  [666] = {.lex_state = 0},
  [667] = {.lex_state = 1},
  [668] = {.lex_state = 0},
  [669] = {.lex_state = 1},
  [670] = {.lex_state = 1},
  [671] = {.lex_state = 1},
  [672] = {.lex_state = 1},
  [673] = {.lex_state = 1},
  [674] = {.lex_state = 0},
  [675] = {.lex_state = 1},
  [676] = {.lex_state = 0},
  [677] = {.lex_state = 1},
  [678] = {.lex_state = 0},
  [679] = {.lex_state = 0},
  [680] = {.lex_state = 0},
  [681] = {.lex_state = 238},
  [682] = {.lex_state = 31},
  [683] = {.lex_state = 0},
  [684] = {.lex_state = 31},
};

static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
  [0] = {
    [ts_builtin_sym_end] = ACTIONS(1),
    [anon_sym_COLON] = ACTIONS(1),
    [anon_sym_COMMA] = ACTIONS(1),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(1),
    [anon_sym_QMARK] = ACTIONS(1),
    [anon_sym_DOT] = ACTIONS(1),
    [anon_sym_5_DOT1] = ACTIONS(1),
    [anon_sym_5_DOT2] = ACTIONS(1),
    [anon_sym_5_DOT3] = ACTIONS(1),
    [anon_sym_5_DOT4] = ACTIONS(1),
    [anon_sym_JIT] = ACTIONS(1),
    [anon_sym_LPAREN] = ACTIONS(1),
    [anon_sym_RPAREN] = ACTIONS(1),
    [anon_sym_public] = ACTIONS(1),
    [anon_sym_protected] = ACTIONS(1),
    [anon_sym_private] = ACTIONS(1),
    [anon_sym_AT] = ACTIONS(1),
    [anon_sym_extends] = ACTIONS(1),
    [anon_sym_LBRACK] = ACTIONS(1),
    [anon_sym_RBRACK] = ACTIONS(1),
    [anon_sym_table] = ACTIONS(1),
    [anon_sym_LT] = ACTIONS(1),
    [anon_sym_GT] = ACTIONS(1),
    [anon_sym_LBRACE] = ACTIONS(1),
    [anon_sym_RBRACK2] = ACTIONS(1),
    [anon_sym_RBRACE] = ACTIONS(1),
    [anon_sym_PIPE] = ACTIONS(1),
    [anon_sym_fun] = ACTIONS(1),
    [anon_sym_function] = ACTIONS(1),
    [anon_sym_self] = ACTIONS(1),
    [anon_sym_POUND] = ACTIONS(1),
    [anon_sym_DQUOTE] = ACTIONS(1),
    [anon_sym_any] = ACTIONS(1),
    [anon_sym_boolean] = ACTIONS(1),
    [anon_sym_CFunction] = ACTIONS(1),
    [anon_sym_nil] = ACTIONS(1),
    [anon_sym_number] = ACTIONS(1),
    [anon_sym_string] = ACTIONS(1),
    [anon_sym_userdata] = ACTIONS(1),
    [anon_sym_void] = ACTIONS(1),
    [sym_string] = ACTIONS(1),
    [sym_number] = ACTIONS(1),
  },
  [1] = {
    [sym_documentation] = STATE(623),
    [sym_class_annotation] = STATE(622),
    [sym_type_annotation] = STATE(622),
    [sym_param_annotation] = STATE(622),
    [sym_alias_annotation] = STATE(622),
    [sym_return_annotation] = STATE(622),
    [sym_field_annotation] = STATE(622),
    [sym_qualifier_annotation] = STATE(622),
    [sym_generic_annotation] = STATE(622),
    [sym_vararg_annotation] = STATE(622),
    [sym_diagnostic_annotation] = STATE(622),
    [sym_meta_annotation] = STATE(622),
    [sym_module_annotation] = STATE(622),
    [sym_source_annotation] = STATE(622),
    [sym_version_annotation] = STATE(622),
    [sym_package_annotation] = STATE(622),
    [sym_operator_annotation] = STATE(622),
    [sym_nodiscard_annotation] = STATE(622),
    [sym_deprecated_annotation] = STATE(622),
    [sym_cast_annotation] = STATE(622),
    [sym_async_annotation] = STATE(622),
    [sym_overload_annotation] = STATE(622),
    [sym_enum_annotation] = STATE(622),
    [sym_language_injection] = STATE(622),
    [sym_see_reference] = STATE(622),
    [anon_sym_ATclass] = ACTIONS(3),
    [anon_sym_ATtype] = ACTIONS(5),
    [anon_sym_ATparam] = ACTIONS(7),
    [anon_sym_ATalias] = ACTIONS(9),
    [anon_sym_ATreturn] = ACTIONS(11),
    [anon_sym_ATfield] = ACTIONS(13),
    [anon_sym_ATpublic] = ACTIONS(15),
    [anon_sym_ATprotected] = ACTIONS(15),
    [anon_sym_ATprivate] = ACTIONS(15),
    [anon_sym_ATgeneric] = ACTIONS(17),
    [anon_sym_ATvararg] = ACTIONS(19),
    [anon_sym_ATdiagnostic] = ACTIONS(21),
    [anon_sym_ATmeta] = ACTIONS(23),
    [anon_sym_ATmodule] = ACTIONS(25),
    [anon_sym_ATsource] = ACTIONS(27),
    [anon_sym_ATversion] = ACTIONS(29),
    [anon_sym_ATpackage] = ACTIONS(31),
    [anon_sym_AToperator] = ACTIONS(33),
    [anon_sym_ATnodiscard] = ACTIONS(35),
    [anon_sym_ATdeprecated] = ACTIONS(37),
    [anon_sym_ATcast] = ACTIONS(39),
    [anon_sym_ATasync] = ACTIONS(41),
    [anon_sym_AToverload] = ACTIONS(43),
    [anon_sym_ATenum] = ACTIONS(45),
    [anon_sym_ATlanguage] = ACTIONS(47),
    [anon_sym_ATsee] = ACTIONS(49),
  },
};

static const uint16_t ts_small_parse_table[] = {
  [0] = 14,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(55), 1,
      anon_sym_LPAREN,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(59), 1,
      anon_sym_table,
    ACTIONS(61), 1,
      anon_sym_LBRACE,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(65), 1,
      anon_sym_fun,
    ACTIONS(67), 1,
      anon_sym_function,
    ACTIONS(69), 1,
      anon_sym_DQUOTE,
    ACTIONS(73), 1,
      sym_identifier,
    STATE(378), 1,
      sym_type,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
    ACTIONS(71), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(381), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [60] = 14,
    ACTIONS(75), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(79), 1,
      anon_sym_RPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(89), 1,
      anon_sym_self,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(95), 1,
      sym_identifier,
    STATE(317), 1,
      sym_type,
    STATE(448), 1,
      sym_parameter,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [119] = 14,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(95), 1,
      sym_identifier,
    ACTIONS(97), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(99), 1,
      anon_sym_RPAREN,
    ACTIONS(101), 1,
      anon_sym_self,
    STATE(342), 1,
      sym_type,
    STATE(433), 1,
      sym_parameter,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [178] = 14,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(95), 1,
      sym_identifier,
    ACTIONS(103), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(105), 1,
      anon_sym_RPAREN,
    ACTIONS(107), 1,
      anon_sym_self,
    STATE(347), 1,
      sym_type,
    STATE(463), 1,
      sym_parameter,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [237] = 14,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(95), 1,
      sym_identifier,
    ACTIONS(109), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(111), 1,
      anon_sym_RPAREN,
    ACTIONS(113), 1,
      anon_sym_self,
    STATE(270), 1,
      sym_type,
    STATE(489), 1,
      sym_parameter,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [296] = 14,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(95), 1,
      sym_identifier,
    ACTIONS(115), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(117), 1,
      anon_sym_RPAREN,
    ACTIONS(119), 1,
      anon_sym_self,
    STATE(328), 1,
      sym_type,
    STATE(490), 1,
      sym_parameter,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [355] = 14,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(95), 1,
      sym_identifier,
    ACTIONS(121), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(123), 1,
      anon_sym_RPAREN,
    ACTIONS(125), 1,
      anon_sym_self,
    STATE(271), 1,
      sym_type,
    STATE(456), 1,
      sym_parameter,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [414] = 14,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(95), 1,
      sym_identifier,
    ACTIONS(127), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(129), 1,
      anon_sym_RPAREN,
    ACTIONS(131), 1,
      anon_sym_self,
    STATE(323), 1,
      sym_type,
    STATE(422), 1,
      sym_parameter,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [473] = 14,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(95), 1,
      sym_identifier,
    ACTIONS(133), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(135), 1,
      anon_sym_RPAREN,
    ACTIONS(137), 1,
      anon_sym_self,
    STATE(311), 1,
      sym_type,
    STATE(437), 1,
      sym_parameter,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [532] = 11,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(139), 1,
      sym_number,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(399), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [582] = 11,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    ACTIONS(143), 1,
      sym_number,
    STATE(402), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [632] = 11,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    ACTIONS(145), 1,
      sym_number,
    STATE(403), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [682] = 11,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    ACTIONS(147), 1,
      sym_number,
    STATE(405), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [732] = 11,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    ACTIONS(149), 1,
      sym_number,
    STATE(407), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [782] = 11,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    ACTIONS(151), 1,
      sym_number,
    STATE(409), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [832] = 11,
    ACTIONS(153), 1,
      anon_sym_QMARK,
    ACTIONS(155), 1,
      anon_sym_LPAREN,
    ACTIONS(157), 1,
      anon_sym_table,
    ACTIONS(159), 1,
      anon_sym_LBRACE,
    ACTIONS(161), 1,
      anon_sym_fun,
    ACTIONS(163), 1,
      anon_sym_function,
    ACTIONS(165), 1,
      anon_sym_DQUOTE,
    ACTIONS(169), 1,
      sym_identifier,
    STATE(208), 1,
      sym_type,
    ACTIONS(167), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(278), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [882] = 11,
    ACTIONS(155), 1,
      anon_sym_LPAREN,
    ACTIONS(157), 1,
      anon_sym_table,
    ACTIONS(159), 1,
      anon_sym_LBRACE,
    ACTIONS(161), 1,
      anon_sym_fun,
    ACTIONS(163), 1,
      anon_sym_function,
    ACTIONS(165), 1,
      anon_sym_DQUOTE,
    ACTIONS(169), 1,
      sym_identifier,
    ACTIONS(171), 1,
      anon_sym_QMARK,
    STATE(256), 1,
      sym_type,
    ACTIONS(167), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(278), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [932] = 11,
    ACTIONS(155), 1,
      anon_sym_LPAREN,
    ACTIONS(157), 1,
      anon_sym_table,
    ACTIONS(159), 1,
      anon_sym_LBRACE,
    ACTIONS(161), 1,
      anon_sym_fun,
    ACTIONS(163), 1,
      anon_sym_function,
    ACTIONS(165), 1,
      anon_sym_DQUOTE,
    ACTIONS(169), 1,
      sym_identifier,
    ACTIONS(173), 1,
      anon_sym_QMARK,
    STATE(211), 1,
      sym_type,
    ACTIONS(167), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(278), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [982] = 11,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    ACTIONS(175), 1,
      sym_number,
    STATE(397), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [1032] = 11,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    ACTIONS(177), 1,
      sym_number,
    STATE(406), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [1082] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(105), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [1129] = 10,
    ACTIONS(179), 1,
      anon_sym_LPAREN,
    ACTIONS(181), 1,
      anon_sym_table,
    ACTIONS(183), 1,
      anon_sym_LBRACE,
    ACTIONS(185), 1,
      anon_sym_fun,
    ACTIONS(187), 1,
      anon_sym_function,
    ACTIONS(189), 1,
      anon_sym_DQUOTE,
    ACTIONS(193), 1,
      sym_identifier,
    STATE(218), 1,
      sym_type,
    ACTIONS(191), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(276), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [1176] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(343), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [1223] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(396), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [1270] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(310), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [1317] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(2), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [1364] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(380), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [1411] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(392), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [1458] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(312), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [1505] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(313), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [1552] = 10,
    ACTIONS(155), 1,
      anon_sym_LPAREN,
    ACTIONS(157), 1,
      anon_sym_table,
    ACTIONS(159), 1,
      anon_sym_LBRACE,
    ACTIONS(161), 1,
      anon_sym_fun,
    ACTIONS(163), 1,
      anon_sym_function,
    ACTIONS(165), 1,
      anon_sym_DQUOTE,
    ACTIONS(169), 1,
      sym_identifier,
    STATE(256), 1,
      sym_type,
    ACTIONS(167), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(278), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [1599] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(314), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [1646] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(395), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [1693] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(410), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [1740] = 10,
    ACTIONS(179), 1,
      anon_sym_LPAREN,
    ACTIONS(181), 1,
      anon_sym_table,
    ACTIONS(183), 1,
      anon_sym_LBRACE,
    ACTIONS(185), 1,
      anon_sym_fun,
    ACTIONS(187), 1,
      anon_sym_function,
    ACTIONS(189), 1,
      anon_sym_DQUOTE,
    ACTIONS(193), 1,
      sym_identifier,
    STATE(288), 1,
      sym_type,
    ACTIONS(191), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(276), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [1787] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(315), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [1834] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(372), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [1881] = 10,
    ACTIONS(195), 1,
      anon_sym_LPAREN,
    ACTIONS(197), 1,
      anon_sym_table,
    ACTIONS(199), 1,
      anon_sym_LBRACE,
    ACTIONS(201), 1,
      anon_sym_fun,
    ACTIONS(203), 1,
      anon_sym_function,
    ACTIONS(205), 1,
      anon_sym_DQUOTE,
    ACTIONS(209), 1,
      sym_identifier,
    STATE(254), 1,
      sym_type,
    ACTIONS(207), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(245), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [1928] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(400), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [1975] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(388), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [2022] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(385), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [2069] = 4,
    ACTIONS(211), 1,
      anon_sym_COMMA,
    STATE(43), 1,
      aux_sym_type_annotation_repeat1,
    ACTIONS(214), 12,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_GT,
      anon_sym_LBRACE,
      anon_sym_RBRACK2,
      anon_sym_RBRACE,
      anon_sym_PIPE,
      anon_sym_POUND,
      anon_sym_DQUOTE,
    ACTIONS(216), 12,
      anon_sym_table,
      anon_sym_fun,
      anon_sym_function,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
      sym_identifier,
  [2104] = 10,
    ACTIONS(179), 1,
      anon_sym_LPAREN,
    ACTIONS(181), 1,
      anon_sym_table,
    ACTIONS(183), 1,
      anon_sym_LBRACE,
    ACTIONS(185), 1,
      anon_sym_fun,
    ACTIONS(187), 1,
      anon_sym_function,
    ACTIONS(189), 1,
      anon_sym_DQUOTE,
    ACTIONS(193), 1,
      sym_identifier,
    STATE(215), 1,
      sym_type,
    ACTIONS(191), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(276), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [2151] = 10,
    ACTIONS(155), 1,
      anon_sym_LPAREN,
    ACTIONS(157), 1,
      anon_sym_table,
    ACTIONS(159), 1,
      anon_sym_LBRACE,
    ACTIONS(161), 1,
      anon_sym_fun,
    ACTIONS(163), 1,
      anon_sym_function,
    ACTIONS(165), 1,
      anon_sym_DQUOTE,
    ACTIONS(169), 1,
      sym_identifier,
    STATE(210), 1,
      sym_type,
    ACTIONS(167), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(278), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [2198] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(384), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [2245] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(318), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [2292] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(319), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [2339] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(325), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [2386] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(401), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [2433] = 10,
    ACTIONS(155), 1,
      anon_sym_LPAREN,
    ACTIONS(157), 1,
      anon_sym_table,
    ACTIONS(159), 1,
      anon_sym_LBRACE,
    ACTIONS(161), 1,
      anon_sym_fun,
    ACTIONS(163), 1,
      anon_sym_function,
    ACTIONS(165), 1,
      anon_sym_DQUOTE,
    ACTIONS(169), 1,
      sym_identifier,
    STATE(287), 1,
      sym_type,
    ACTIONS(167), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(278), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [2480] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(326), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [2527] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(364), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [2574] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(411), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [2621] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(329), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [2668] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(334), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [2715] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(330), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [2762] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(408), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [2809] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(333), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [2856] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(356), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [2903] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(398), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [2950] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(338), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [2997] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(340), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [3044] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(341), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [3091] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(391), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [3138] = 10,
    ACTIONS(179), 1,
      anon_sym_LPAREN,
    ACTIONS(181), 1,
      anon_sym_table,
    ACTIONS(183), 1,
      anon_sym_LBRACE,
    ACTIONS(185), 1,
      anon_sym_fun,
    ACTIONS(187), 1,
      anon_sym_function,
    ACTIONS(189), 1,
      anon_sym_DQUOTE,
    ACTIONS(193), 1,
      sym_identifier,
    STATE(306), 1,
      sym_type,
    ACTIONS(191), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(276), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [3185] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(346), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [3232] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(373), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [3279] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(352), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [3326] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(350), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [3373] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(404), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [3420] = 10,
    ACTIONS(155), 1,
      anon_sym_LPAREN,
    ACTIONS(157), 1,
      anon_sym_table,
    ACTIONS(159), 1,
      anon_sym_LBRACE,
    ACTIONS(161), 1,
      anon_sym_fun,
    ACTIONS(163), 1,
      anon_sym_function,
    ACTIONS(165), 1,
      anon_sym_DQUOTE,
    ACTIONS(169), 1,
      sym_identifier,
    STATE(200), 1,
      sym_type,
    ACTIONS(167), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(278), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [3467] = 10,
    ACTIONS(179), 1,
      anon_sym_LPAREN,
    ACTIONS(181), 1,
      anon_sym_table,
    ACTIONS(183), 1,
      anon_sym_LBRACE,
    ACTIONS(185), 1,
      anon_sym_fun,
    ACTIONS(187), 1,
      anon_sym_function,
    ACTIONS(189), 1,
      anon_sym_DQUOTE,
    ACTIONS(193), 1,
      sym_identifier,
    STATE(220), 1,
      sym_type,
    ACTIONS(191), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(276), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [3514] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(349), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [3561] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(383), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [3608] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(345), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [3655] = 10,
    ACTIONS(55), 1,
      anon_sym_LPAREN,
    ACTIONS(59), 1,
      anon_sym_table,
    ACTIONS(61), 1,
      anon_sym_LBRACE,
    ACTIONS(65), 1,
      anon_sym_fun,
    ACTIONS(67), 1,
      anon_sym_function,
    ACTIONS(69), 1,
      anon_sym_DQUOTE,
    ACTIONS(73), 1,
      sym_identifier,
    STATE(369), 1,
      sym_type,
    ACTIONS(71), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(381), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [3702] = 10,
    ACTIONS(218), 1,
      anon_sym_LPAREN,
    ACTIONS(220), 1,
      anon_sym_table,
    ACTIONS(222), 1,
      anon_sym_LBRACE,
    ACTIONS(224), 1,
      anon_sym_fun,
    ACTIONS(226), 1,
      anon_sym_function,
    ACTIONS(228), 1,
      anon_sym_DQUOTE,
    ACTIONS(232), 1,
      sym_identifier,
    STATE(243), 1,
      sym_type,
    ACTIONS(230), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(240), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [3749] = 10,
    ACTIONS(195), 1,
      anon_sym_LPAREN,
    ACTIONS(197), 1,
      anon_sym_table,
    ACTIONS(199), 1,
      anon_sym_LBRACE,
    ACTIONS(201), 1,
      anon_sym_fun,
    ACTIONS(203), 1,
      anon_sym_function,
    ACTIONS(205), 1,
      anon_sym_DQUOTE,
    ACTIONS(209), 1,
      sym_identifier,
    STATE(250), 1,
      sym_type,
    ACTIONS(207), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(245), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [3796] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(344), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [3843] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(394), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [3890] = 3,
    ACTIONS(234), 1,
      anon_sym_COLON,
    ACTIONS(238), 12,
      anon_sym_table,
      anon_sym_fun,
      anon_sym_function,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
      sym_identifier,
    ACTIONS(236), 13,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_GT,
      anon_sym_LBRACE,
      anon_sym_RBRACK2,
      anon_sym_RBRACE,
      anon_sym_PIPE,
      anon_sym_POUND,
      anon_sym_DQUOTE,
  [3923] = 10,
    ACTIONS(155), 1,
      anon_sym_LPAREN,
    ACTIONS(157), 1,
      anon_sym_table,
    ACTIONS(159), 1,
      anon_sym_LBRACE,
    ACTIONS(161), 1,
      anon_sym_fun,
    ACTIONS(163), 1,
      anon_sym_function,
    ACTIONS(165), 1,
      anon_sym_DQUOTE,
    ACTIONS(169), 1,
      sym_identifier,
    STATE(255), 1,
      sym_type,
    ACTIONS(167), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(278), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [3970] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(146), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [4017] = 10,
    ACTIONS(240), 1,
      anon_sym_LPAREN,
    ACTIONS(242), 1,
      anon_sym_table,
    ACTIONS(244), 1,
      anon_sym_LBRACE,
    ACTIONS(246), 1,
      anon_sym_fun,
    ACTIONS(248), 1,
      anon_sym_function,
    ACTIONS(250), 1,
      anon_sym_DQUOTE,
    ACTIONS(254), 1,
      sym_identifier,
    STATE(158), 1,
      sym_type,
    ACTIONS(252), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(187), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [4064] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(275), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [4111] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(353), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [4158] = 10,
    ACTIONS(55), 1,
      anon_sym_LPAREN,
    ACTIONS(59), 1,
      anon_sym_table,
    ACTIONS(61), 1,
      anon_sym_LBRACE,
    ACTIONS(65), 1,
      anon_sym_fun,
    ACTIONS(67), 1,
      anon_sym_function,
    ACTIONS(69), 1,
      anon_sym_DQUOTE,
    ACTIONS(73), 1,
      sym_identifier,
    STATE(386), 1,
      sym_type,
    ACTIONS(71), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(381), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [4205] = 3,
    ACTIONS(256), 1,
      anon_sym_COLON,
    ACTIONS(260), 12,
      anon_sym_table,
      anon_sym_fun,
      anon_sym_function,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
      sym_identifier,
    ACTIONS(258), 13,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_GT,
      anon_sym_LBRACE,
      anon_sym_RBRACK2,
      anon_sym_RBRACE,
      anon_sym_PIPE,
      anon_sym_POUND,
      anon_sym_DQUOTE,
  [4238] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(393), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [4285] = 10,
    ACTIONS(55), 1,
      anon_sym_LPAREN,
    ACTIONS(59), 1,
      anon_sym_table,
    ACTIONS(61), 1,
      anon_sym_LBRACE,
    ACTIONS(65), 1,
      anon_sym_fun,
    ACTIONS(67), 1,
      anon_sym_function,
    ACTIONS(69), 1,
      anon_sym_DQUOTE,
    ACTIONS(73), 1,
      sym_identifier,
    STATE(387), 1,
      sym_type,
    ACTIONS(71), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(381), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [4332] = 10,
    ACTIONS(240), 1,
      anon_sym_LPAREN,
    ACTIONS(242), 1,
      anon_sym_table,
    ACTIONS(244), 1,
      anon_sym_LBRACE,
    ACTIONS(246), 1,
      anon_sym_fun,
    ACTIONS(248), 1,
      anon_sym_function,
    ACTIONS(250), 1,
      anon_sym_DQUOTE,
    ACTIONS(254), 1,
      sym_identifier,
    STATE(154), 1,
      sym_type,
    ACTIONS(252), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(187), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [4379] = 8,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(262), 1,
      anon_sym_COMMA,
    STATE(101), 1,
      aux_sym_type_annotation_repeat1,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
    ACTIONS(264), 7,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_GT,
      anon_sym_LBRACE,
      anon_sym_RBRACK2,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
    ACTIONS(266), 12,
      anon_sym_table,
      anon_sym_fun,
      anon_sym_function,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
      sym_identifier,
  [4422] = 3,
    ACTIONS(268), 1,
      anon_sym_COLON,
    ACTIONS(266), 12,
      anon_sym_table,
      anon_sym_fun,
      anon_sym_function,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
      sym_identifier,
    ACTIONS(264), 13,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_GT,
      anon_sym_LBRACE,
      anon_sym_RBRACK2,
      anon_sym_RBRACE,
      anon_sym_PIPE,
      anon_sym_POUND,
      anon_sym_DQUOTE,
  [4455] = 8,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(262), 1,
      anon_sym_COMMA,
    STATE(104), 1,
      aux_sym_type_annotation_repeat1,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
    ACTIONS(270), 7,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_GT,
      anon_sym_LBRACE,
      anon_sym_RBRACK2,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
    ACTIONS(272), 12,
      anon_sym_table,
      anon_sym_fun,
      anon_sym_function,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
      sym_identifier,
  [4498] = 10,
    ACTIONS(195), 1,
      anon_sym_LPAREN,
    ACTIONS(197), 1,
      anon_sym_table,
    ACTIONS(199), 1,
      anon_sym_LBRACE,
    ACTIONS(201), 1,
      anon_sym_fun,
    ACTIONS(203), 1,
      anon_sym_function,
    ACTIONS(205), 1,
      anon_sym_DQUOTE,
    ACTIONS(209), 1,
      sym_identifier,
    STATE(159), 1,
      sym_type,
    ACTIONS(207), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(245), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [4545] = 10,
    ACTIONS(55), 1,
      anon_sym_LPAREN,
    ACTIONS(59), 1,
      anon_sym_table,
    ACTIONS(61), 1,
      anon_sym_LBRACE,
    ACTIONS(65), 1,
      anon_sym_fun,
    ACTIONS(67), 1,
      anon_sym_function,
    ACTIONS(69), 1,
      anon_sym_DQUOTE,
    ACTIONS(73), 1,
      sym_identifier,
    STATE(360), 1,
      sym_type,
    ACTIONS(71), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(381), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [4592] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(412), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [4639] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(303), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [4686] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(348), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [4733] = 4,
    ACTIONS(262), 1,
      anon_sym_COMMA,
    STATE(43), 1,
      aux_sym_type_annotation_repeat1,
    ACTIONS(270), 12,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_GT,
      anon_sym_LBRACE,
      anon_sym_RBRACK2,
      anon_sym_RBRACE,
      anon_sym_PIPE,
      anon_sym_POUND,
      anon_sym_DQUOTE,
    ACTIONS(272), 12,
      anon_sym_table,
      anon_sym_fun,
      anon_sym_function,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
      sym_identifier,
  [4768] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(351), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [4815] = 10,
    ACTIONS(55), 1,
      anon_sym_LPAREN,
    ACTIONS(59), 1,
      anon_sym_table,
    ACTIONS(61), 1,
      anon_sym_LBRACE,
    ACTIONS(65), 1,
      anon_sym_fun,
    ACTIONS(67), 1,
      anon_sym_function,
    ACTIONS(69), 1,
      anon_sym_DQUOTE,
    ACTIONS(73), 1,
      sym_identifier,
    STATE(376), 1,
      sym_type,
    ACTIONS(71), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(381), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [4862] = 4,
    ACTIONS(262), 1,
      anon_sym_COMMA,
    STATE(43), 1,
      aux_sym_type_annotation_repeat1,
    ACTIONS(274), 12,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_GT,
      anon_sym_LBRACE,
      anon_sym_RBRACK2,
      anon_sym_RBRACE,
      anon_sym_PIPE,
      anon_sym_POUND,
      anon_sym_DQUOTE,
    ACTIONS(276), 12,
      anon_sym_table,
      anon_sym_fun,
      anon_sym_function,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
      sym_identifier,
  [4897] = 8,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(262), 1,
      anon_sym_COMMA,
    STATE(112), 1,
      aux_sym_type_annotation_repeat1,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
    ACTIONS(274), 7,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_GT,
      anon_sym_LBRACE,
      anon_sym_RBRACK2,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
    ACTIONS(276), 12,
      anon_sym_table,
      anon_sym_fun,
      anon_sym_function,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
      sym_identifier,
  [4940] = 10,
    ACTIONS(155), 1,
      anon_sym_LPAREN,
    ACTIONS(157), 1,
      anon_sym_table,
    ACTIONS(159), 1,
      anon_sym_LBRACE,
    ACTIONS(161), 1,
      anon_sym_fun,
    ACTIONS(163), 1,
      anon_sym_function,
    ACTIONS(165), 1,
      anon_sym_DQUOTE,
    ACTIONS(169), 1,
      sym_identifier,
    STATE(233), 1,
      sym_type,
    ACTIONS(167), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(278), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [4987] = 10,
    ACTIONS(240), 1,
      anon_sym_LPAREN,
    ACTIONS(242), 1,
      anon_sym_table,
    ACTIONS(244), 1,
      anon_sym_LBRACE,
    ACTIONS(246), 1,
      anon_sym_fun,
    ACTIONS(248), 1,
      anon_sym_function,
    ACTIONS(250), 1,
      anon_sym_DQUOTE,
    ACTIONS(254), 1,
      sym_identifier,
    STATE(177), 1,
      sym_type,
    ACTIONS(252), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(187), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [5034] = 10,
    ACTIONS(218), 1,
      anon_sym_LPAREN,
    ACTIONS(220), 1,
      anon_sym_table,
    ACTIONS(222), 1,
      anon_sym_LBRACE,
    ACTIONS(224), 1,
      anon_sym_fun,
    ACTIONS(226), 1,
      anon_sym_function,
    ACTIONS(228), 1,
      anon_sym_DQUOTE,
    ACTIONS(232), 1,
      sym_identifier,
    STATE(182), 1,
      sym_type,
    ACTIONS(230), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(240), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [5081] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(337), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [5128] = 10,
    ACTIONS(240), 1,
      anon_sym_LPAREN,
    ACTIONS(242), 1,
      anon_sym_table,
    ACTIONS(244), 1,
      anon_sym_LBRACE,
    ACTIONS(246), 1,
      anon_sym_fun,
    ACTIONS(248), 1,
      anon_sym_function,
    ACTIONS(250), 1,
      anon_sym_DQUOTE,
    ACTIONS(254), 1,
      sym_identifier,
    STATE(198), 1,
      sym_type,
    ACTIONS(252), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(187), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [5175] = 10,
    ACTIONS(179), 1,
      anon_sym_LPAREN,
    ACTIONS(181), 1,
      anon_sym_table,
    ACTIONS(183), 1,
      anon_sym_LBRACE,
    ACTIONS(185), 1,
      anon_sym_fun,
    ACTIONS(187), 1,
      anon_sym_function,
    ACTIONS(189), 1,
      anon_sym_DQUOTE,
    ACTIONS(193), 1,
      sym_identifier,
    STATE(266), 1,
      sym_type,
    ACTIONS(191), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(276), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [5222] = 4,
    ACTIONS(262), 1,
      anon_sym_COMMA,
    STATE(43), 1,
      aux_sym_type_annotation_repeat1,
    ACTIONS(278), 12,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_GT,
      anon_sym_LBRACE,
      anon_sym_RBRACK2,
      anon_sym_RBRACE,
      anon_sym_PIPE,
      anon_sym_POUND,
      anon_sym_DQUOTE,
    ACTIONS(280), 12,
      anon_sym_table,
      anon_sym_fun,
      anon_sym_function,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
      sym_identifier,
  [5257] = 3,
    ACTIONS(286), 1,
      anon_sym_LT,
    ACTIONS(284), 12,
      anon_sym_table,
      anon_sym_fun,
      anon_sym_function,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
      sym_identifier,
    ACTIONS(282), 13,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_GT,
      anon_sym_LBRACE,
      anon_sym_RBRACK2,
      anon_sym_RBRACE,
      anon_sym_PIPE,
      anon_sym_POUND,
      anon_sym_DQUOTE,
  [5290] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(273), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [5337] = 10,
    ACTIONS(195), 1,
      anon_sym_LPAREN,
    ACTIONS(197), 1,
      anon_sym_table,
    ACTIONS(199), 1,
      anon_sym_LBRACE,
    ACTIONS(201), 1,
      anon_sym_fun,
    ACTIONS(203), 1,
      anon_sym_function,
    ACTIONS(205), 1,
      anon_sym_DQUOTE,
    ACTIONS(209), 1,
      sym_identifier,
    STATE(167), 1,
      sym_type,
    ACTIONS(207), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(245), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [5384] = 10,
    ACTIONS(179), 1,
      anon_sym_LPAREN,
    ACTIONS(181), 1,
      anon_sym_table,
    ACTIONS(183), 1,
      anon_sym_LBRACE,
    ACTIONS(185), 1,
      anon_sym_fun,
    ACTIONS(187), 1,
      anon_sym_function,
    ACTIONS(189), 1,
      anon_sym_DQUOTE,
    ACTIONS(193), 1,
      sym_identifier,
    STATE(265), 1,
      sym_type,
    ACTIONS(191), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(276), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [5431] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(335), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [5478] = 10,
    ACTIONS(195), 1,
      anon_sym_LPAREN,
    ACTIONS(197), 1,
      anon_sym_table,
    ACTIONS(199), 1,
      anon_sym_LBRACE,
    ACTIONS(201), 1,
      anon_sym_fun,
    ACTIONS(203), 1,
      anon_sym_function,
    ACTIONS(205), 1,
      anon_sym_DQUOTE,
    ACTIONS(209), 1,
      sym_identifier,
    STATE(165), 1,
      sym_type,
    ACTIONS(207), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(245), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [5525] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(389), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [5572] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(93), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [5619] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(366), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [5666] = 10,
    ACTIONS(240), 1,
      anon_sym_LPAREN,
    ACTIONS(242), 1,
      anon_sym_table,
    ACTIONS(244), 1,
      anon_sym_LBRACE,
    ACTIONS(246), 1,
      anon_sym_fun,
    ACTIONS(248), 1,
      anon_sym_function,
    ACTIONS(250), 1,
      anon_sym_DQUOTE,
    ACTIONS(254), 1,
      sym_identifier,
    STATE(156), 1,
      sym_type,
    ACTIONS(252), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(187), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [5713] = 10,
    ACTIONS(179), 1,
      anon_sym_LPAREN,
    ACTIONS(181), 1,
      anon_sym_table,
    ACTIONS(183), 1,
      anon_sym_LBRACE,
    ACTIONS(185), 1,
      anon_sym_fun,
    ACTIONS(187), 1,
      anon_sym_function,
    ACTIONS(189), 1,
      anon_sym_DQUOTE,
    ACTIONS(193), 1,
      sym_identifier,
    STATE(261), 1,
      sym_type,
    ACTIONS(191), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(276), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [5760] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(95), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [5807] = 10,
    ACTIONS(195), 1,
      anon_sym_LPAREN,
    ACTIONS(197), 1,
      anon_sym_table,
    ACTIONS(199), 1,
      anon_sym_LBRACE,
    ACTIONS(201), 1,
      anon_sym_fun,
    ACTIONS(203), 1,
      anon_sym_function,
    ACTIONS(205), 1,
      anon_sym_DQUOTE,
    ACTIONS(209), 1,
      sym_identifier,
    STATE(181), 1,
      sym_type,
    ACTIONS(207), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(245), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [5854] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(272), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [5901] = 10,
    ACTIONS(155), 1,
      anon_sym_LPAREN,
    ACTIONS(157), 1,
      anon_sym_table,
    ACTIONS(159), 1,
      anon_sym_LBRACE,
    ACTIONS(161), 1,
      anon_sym_fun,
    ACTIONS(163), 1,
      anon_sym_function,
    ACTIONS(165), 1,
      anon_sym_DQUOTE,
    ACTIONS(169), 1,
      sym_identifier,
    STATE(224), 1,
      sym_type,
    ACTIONS(167), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(278), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [5948] = 10,
    ACTIONS(77), 1,
      anon_sym_LPAREN,
    ACTIONS(81), 1,
      anon_sym_table,
    ACTIONS(83), 1,
      anon_sym_LBRACE,
    ACTIONS(85), 1,
      anon_sym_fun,
    ACTIONS(87), 1,
      anon_sym_function,
    ACTIONS(91), 1,
      anon_sym_DQUOTE,
    ACTIONS(141), 1,
      sym_identifier,
    STATE(144), 1,
      sym_type,
    ACTIONS(93), 8,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
    STATE(140), 10,
      sym_array_type,
      sym_table_type,
      sym_table_literal_type,
      sym_union_type,
      sym_parenthesized_type,
      sym_function_type,
      sym_member_type,
      sym_optional_type,
      sym_literal_type,
      sym_builtin_type,
  [5995] = 2,
    ACTIONS(290), 12,
      anon_sym_table,
      anon_sym_fun,
      anon_sym_function,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
      sym_identifier,
    ACTIONS(288), 13,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_GT,
      anon_sym_LBRACE,
      anon_sym_RBRACK2,
      anon_sym_RBRACE,
      anon_sym_PIPE,
      anon_sym_POUND,
      anon_sym_DQUOTE,
  [6025] = 2,
    ACTIONS(294), 12,
      anon_sym_table,
      anon_sym_fun,
      anon_sym_function,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
      sym_identifier,
    ACTIONS(292), 13,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_GT,
      anon_sym_LBRACE,
      anon_sym_RBRACK2,
      anon_sym_RBRACE,
      anon_sym_PIPE,
      anon_sym_POUND,
      anon_sym_DQUOTE,
  [6055] = 2,
    ACTIONS(298), 12,
      anon_sym_table,
      anon_sym_fun,
      anon_sym_function,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
      sym_identifier,
    ACTIONS(296), 13,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_GT,
      anon_sym_LBRACE,
      anon_sym_RBRACK2,
      anon_sym_RBRACE,
      anon_sym_PIPE,
      anon_sym_POUND,
      anon_sym_DQUOTE,
  [6085] = 2,
    ACTIONS(302), 12,
      anon_sym_table,
      anon_sym_fun,
      anon_sym_function,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
      sym_identifier,
    ACTIONS(300), 13,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_GT,
      anon_sym_LBRACE,
      anon_sym_RBRACK2,
      anon_sym_RBRACE,
      anon_sym_PIPE,
      anon_sym_POUND,
      anon_sym_DQUOTE,
  [6115] = 2,
    ACTIONS(306), 12,
      anon_sym_table,
      anon_sym_fun,
      anon_sym_function,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
      sym_identifier,
    ACTIONS(304), 13,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_GT,
      anon_sym_LBRACE,
      anon_sym_RBRACK2,
      anon_sym_RBRACE,
      anon_sym_PIPE,
      anon_sym_POUND,
      anon_sym_DQUOTE,
  [6145] = 2,
    ACTIONS(310), 12,
      anon_sym_table,
      anon_sym_fun,
      anon_sym_function,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
      sym_identifier,
    ACTIONS(308), 13,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_GT,
      anon_sym_LBRACE,
      anon_sym_RBRACK2,
      anon_sym_RBRACE,
      anon_sym_PIPE,
      anon_sym_POUND,
      anon_sym_DQUOTE,
  [6175] = 2,
    ACTIONS(314), 12,
      anon_sym_table,
      anon_sym_fun,
      anon_sym_function,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
      sym_identifier,
    ACTIONS(312), 13,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_GT,
      anon_sym_LBRACE,
      anon_sym_RBRACK2,
      anon_sym_RBRACE,
      anon_sym_PIPE,
      anon_sym_POUND,
      anon_sym_DQUOTE,
  [6205] = 2,
    ACTIONS(318), 12,
      anon_sym_table,
      anon_sym_fun,
      anon_sym_function,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
      sym_identifier,
    ACTIONS(316), 13,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_GT,
      anon_sym_LBRACE,
      anon_sym_RBRACK2,
      anon_sym_RBRACE,
      anon_sym_PIPE,
      anon_sym_POUND,
      anon_sym_DQUOTE,
  [6235] = 2,
    ACTIONS(322), 12,
      anon_sym_table,
      anon_sym_fun,
      anon_sym_function,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
      sym_identifier,
    ACTIONS(320), 13,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_GT,
      anon_sym_LBRACE,
      anon_sym_RBRACK2,
      anon_sym_RBRACE,
      anon_sym_PIPE,
      anon_sym_POUND,
      anon_sym_DQUOTE,
  [6265] = 2,
    ACTIONS(326), 12,
      anon_sym_table,
      anon_sym_fun,
      anon_sym_function,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
      sym_identifier,
    ACTIONS(324), 13,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_GT,
      anon_sym_LBRACE,
      anon_sym_RBRACK2,
      anon_sym_RBRACE,
      anon_sym_PIPE,
      anon_sym_POUND,
      anon_sym_DQUOTE,
  [6295] = 2,
    ACTIONS(330), 12,
      anon_sym_table,
      anon_sym_fun,
      anon_sym_function,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
      sym_identifier,
    ACTIONS(328), 13,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_GT,
      anon_sym_LBRACE,
      anon_sym_RBRACK2,
      anon_sym_RBRACE,
      anon_sym_PIPE,
      anon_sym_POUND,
      anon_sym_DQUOTE,
  [6325] = 2,
    ACTIONS(334), 12,
      anon_sym_table,
      anon_sym_fun,
      anon_sym_function,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
      sym_identifier,
    ACTIONS(332), 13,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_GT,
      anon_sym_LBRACE,
      anon_sym_RBRACK2,
      anon_sym_RBRACE,
      anon_sym_PIPE,
      anon_sym_POUND,
      anon_sym_DQUOTE,
  [6355] = 2,
    ACTIONS(338), 12,
      anon_sym_table,
      anon_sym_fun,
      anon_sym_function,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
      sym_identifier,
    ACTIONS(336), 13,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_GT,
      anon_sym_LBRACE,
      anon_sym_RBRACK2,
      anon_sym_RBRACE,
      anon_sym_PIPE,
      anon_sym_POUND,
      anon_sym_DQUOTE,
  [6385] = 2,
    ACTIONS(284), 12,
      anon_sym_table,
      anon_sym_fun,
      anon_sym_function,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
      sym_identifier,
    ACTIONS(282), 13,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_GT,
      anon_sym_LBRACE,
      anon_sym_RBRACK2,
      anon_sym_RBRACE,
      anon_sym_PIPE,
      anon_sym_POUND,
      anon_sym_DQUOTE,
  [6415] = 3,
    ACTIONS(340), 1,
      anon_sym_LPAREN,
    ACTIONS(282), 12,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_GT,
      anon_sym_LBRACE,
      anon_sym_RBRACK2,
      anon_sym_RBRACE,
      anon_sym_PIPE,
      anon_sym_POUND,
      anon_sym_DQUOTE,
    ACTIONS(284), 12,
      anon_sym_table,
      anon_sym_fun,
      anon_sym_function,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
      sym_identifier,
  [6447] = 6,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
    ACTIONS(342), 8,
      anon_sym_COMMA,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_GT,
      anon_sym_LBRACE,
      anon_sym_RBRACK2,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
    ACTIONS(344), 12,
      anon_sym_table,
      anon_sym_fun,
      anon_sym_function,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
      sym_identifier,
  [6485] = 2,
    ACTIONS(348), 12,
      anon_sym_table,
      anon_sym_fun,
      anon_sym_function,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
      sym_identifier,
    ACTIONS(346), 13,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_GT,
      anon_sym_LBRACE,
      anon_sym_RBRACK2,
      anon_sym_RBRACE,
      anon_sym_PIPE,
      anon_sym_POUND,
      anon_sym_DQUOTE,
  [6515] = 6,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
    ACTIONS(214), 8,
      anon_sym_COMMA,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_GT,
      anon_sym_LBRACE,
      anon_sym_RBRACK2,
      anon_sym_RBRACE,
      anon_sym_DQUOTE,
    ACTIONS(216), 12,
      anon_sym_table,
      anon_sym_fun,
      anon_sym_function,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
      sym_identifier,
  [6553] = 2,
    ACTIONS(352), 12,
      anon_sym_table,
      anon_sym_fun,
      anon_sym_function,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
      sym_identifier,
    ACTIONS(350), 13,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_GT,
      anon_sym_LBRACE,
      anon_sym_RBRACK2,
      anon_sym_RBRACE,
      anon_sym_PIPE,
      anon_sym_POUND,
      anon_sym_DQUOTE,
  [6583] = 2,
    ACTIONS(356), 12,
      anon_sym_table,
      anon_sym_fun,
      anon_sym_function,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
      sym_identifier,
    ACTIONS(354), 13,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_GT,
      anon_sym_LBRACE,
      anon_sym_RBRACK2,
      anon_sym_RBRACE,
      anon_sym_PIPE,
      anon_sym_POUND,
      anon_sym_DQUOTE,
  [6613] = 2,
    ACTIONS(360), 12,
      anon_sym_table,
      anon_sym_fun,
      anon_sym_function,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
      sym_identifier,
    ACTIONS(358), 13,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_GT,
      anon_sym_LBRACE,
      anon_sym_RBRACK2,
      anon_sym_RBRACE,
      anon_sym_PIPE,
      anon_sym_POUND,
      anon_sym_DQUOTE,
  [6643] = 2,
    ACTIONS(362), 4,
      anon_sym_QMARK,
      anon_sym_LPAREN,
      anon_sym_LBRACE,
      anon_sym_DQUOTE,
    ACTIONS(364), 12,
      anon_sym_table,
      anon_sym_fun,
      anon_sym_function,
      anon_sym_any,
      anon_sym_boolean,
      anon_sym_CFunction,
      anon_sym_nil,
      anon_sym_number,
      anon_sym_string,
      anon_sym_userdata,
      anon_sym_void,
      sym_identifier,
  [6664] = 4,
    ACTIONS(270), 1,
      ts_builtin_sym_end,
    ACTIONS(366), 1,
      anon_sym_COMMA,
    STATE(155), 1,
      aux_sym_type_annotation_repeat1,
    ACTIONS(272), 8,
      anon_sym_COLON,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [6684] = 3,
    ACTIONS(282), 1,
      ts_builtin_sym_end,
    ACTIONS(368), 1,
      anon_sym_LPAREN,
    ACTIONS(284), 9,
      anon_sym_COLON,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [6702] = 3,
    ACTIONS(282), 1,
      ts_builtin_sym_end,
    ACTIONS(370), 1,
      anon_sym_LT,
    ACTIONS(284), 9,
      anon_sym_COLON,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [6720] = 8,
    ACTIONS(264), 1,
      ts_builtin_sym_end,
    ACTIONS(366), 1,
      anon_sym_COMMA,
    ACTIONS(372), 1,
      anon_sym_QMARK,
    ACTIONS(376), 1,
      anon_sym_LBRACK,
    ACTIONS(378), 1,
      anon_sym_PIPE,
    STATE(151), 1,
      aux_sym_type_annotation_repeat1,
    ACTIONS(374), 2,
      anon_sym_DOT,
      anon_sym_POUND,
    ACTIONS(266), 3,
      anon_sym_COLON,
      anon_sym_AT,
      sym_comment,
  [6748] = 4,
    ACTIONS(214), 1,
      ts_builtin_sym_end,
    ACTIONS(380), 1,
      anon_sym_COMMA,
    STATE(155), 1,
      aux_sym_type_annotation_repeat1,
    ACTIONS(216), 8,
      anon_sym_COLON,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [6768] = 8,
    ACTIONS(270), 1,
      ts_builtin_sym_end,
    ACTIONS(366), 1,
      anon_sym_COMMA,
    ACTIONS(372), 1,
      anon_sym_QMARK,
    ACTIONS(376), 1,
      anon_sym_LBRACK,
    ACTIONS(378), 1,
      anon_sym_PIPE,
    STATE(157), 1,
      aux_sym_type_annotation_repeat1,
    ACTIONS(374), 2,
      anon_sym_DOT,
      anon_sym_POUND,
    ACTIONS(272), 3,
      anon_sym_COLON,
      anon_sym_AT,
      sym_comment,
  [6796] = 4,
    ACTIONS(274), 1,
      ts_builtin_sym_end,
    ACTIONS(366), 1,
      anon_sym_COMMA,
    STATE(155), 1,
      aux_sym_type_annotation_repeat1,
    ACTIONS(276), 8,
      anon_sym_COLON,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [6816] = 8,
    ACTIONS(274), 1,
      ts_builtin_sym_end,
    ACTIONS(366), 1,
      anon_sym_COMMA,
    ACTIONS(372), 1,
      anon_sym_QMARK,
    ACTIONS(376), 1,
      anon_sym_LBRACK,
    ACTIONS(378), 1,
      anon_sym_PIPE,
    STATE(160), 1,
      aux_sym_type_annotation_repeat1,
    ACTIONS(374), 2,
      anon_sym_DOT,
      anon_sym_POUND,
    ACTIONS(276), 3,
      anon_sym_COLON,
      anon_sym_AT,
      sym_comment,
  [6844] = 10,
    ACTIONS(383), 1,
      ts_builtin_sym_end,
    ACTIONS(385), 1,
      anon_sym_COMMA,
    ACTIONS(387), 1,
      anon_sym_QMARK,
    ACTIONS(391), 1,
      anon_sym_AT,
    ACTIONS(393), 1,
      sym_comment,
    ACTIONS(395), 1,
      anon_sym_LBRACK,
    ACTIONS(397), 1,
      anon_sym_PIPE,
    STATE(390), 1,
      aux_sym_type_annotation_repeat1,
    STATE(584), 1,
      sym_at_comment,
    ACTIONS(389), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [6876] = 4,
    ACTIONS(278), 1,
      ts_builtin_sym_end,
    ACTIONS(366), 1,
      anon_sym_COMMA,
    STATE(155), 1,
      aux_sym_type_annotation_repeat1,
    ACTIONS(280), 8,
      anon_sym_COLON,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [6896] = 2,
    ACTIONS(350), 1,
      ts_builtin_sym_end,
    ACTIONS(352), 9,
      anon_sym_COLON,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [6911] = 2,
    ACTIONS(316), 1,
      ts_builtin_sym_end,
    ACTIONS(318), 9,
      anon_sym_COLON,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [6926] = 2,
    ACTIONS(336), 1,
      ts_builtin_sym_end,
    ACTIONS(338), 9,
      anon_sym_COLON,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [6941] = 4,
    ACTIONS(270), 1,
      ts_builtin_sym_end,
    ACTIONS(385), 1,
      anon_sym_COMMA,
    STATE(190), 1,
      aux_sym_type_annotation_repeat1,
    ACTIONS(272), 7,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [6960] = 8,
    ACTIONS(270), 1,
      ts_builtin_sym_end,
    ACTIONS(385), 1,
      anon_sym_COMMA,
    ACTIONS(387), 1,
      anon_sym_QMARK,
    ACTIONS(395), 1,
      anon_sym_LBRACK,
    ACTIONS(397), 1,
      anon_sym_PIPE,
    STATE(176), 1,
      aux_sym_type_annotation_repeat1,
    ACTIONS(272), 2,
      anon_sym_AT,
      sym_comment,
    ACTIONS(389), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [6987] = 3,
    ACTIONS(264), 1,
      ts_builtin_sym_end,
    ACTIONS(399), 1,
      anon_sym_COLON,
    ACTIONS(266), 8,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [7004] = 8,
    ACTIONS(264), 1,
      ts_builtin_sym_end,
    ACTIONS(385), 1,
      anon_sym_COMMA,
    ACTIONS(387), 1,
      anon_sym_QMARK,
    ACTIONS(395), 1,
      anon_sym_LBRACK,
    ACTIONS(397), 1,
      anon_sym_PIPE,
    STATE(164), 1,
      aux_sym_type_annotation_repeat1,
    ACTIONS(266), 2,
      anon_sym_AT,
      sym_comment,
    ACTIONS(389), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [7031] = 3,
    ACTIONS(264), 1,
      ts_builtin_sym_end,
    ACTIONS(401), 1,
      anon_sym_COLON,
    ACTIONS(266), 8,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [7048] = 3,
    ACTIONS(258), 1,
      ts_builtin_sym_end,
    ACTIONS(403), 1,
      anon_sym_COLON,
    ACTIONS(260), 8,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [7065] = 2,
    ACTIONS(296), 1,
      ts_builtin_sym_end,
    ACTIONS(298), 9,
      anon_sym_COLON,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [7080] = 3,
    ACTIONS(282), 1,
      ts_builtin_sym_end,
    ACTIONS(405), 1,
      anon_sym_LT,
    ACTIONS(284), 8,
      anon_sym_COLON,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [7097] = 3,
    ACTIONS(236), 1,
      ts_builtin_sym_end,
    ACTIONS(407), 1,
      anon_sym_COLON,
    ACTIONS(238), 8,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [7114] = 2,
    ACTIONS(354), 1,
      ts_builtin_sym_end,
    ACTIONS(356), 9,
      anon_sym_COLON,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [7129] = 3,
    ACTIONS(258), 1,
      ts_builtin_sym_end,
    ACTIONS(409), 1,
      anon_sym_COLON,
    ACTIONS(260), 8,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [7146] = 3,
    ACTIONS(282), 1,
      ts_builtin_sym_end,
    ACTIONS(411), 1,
      anon_sym_LPAREN,
    ACTIONS(284), 8,
      anon_sym_COLON,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [7163] = 4,
    ACTIONS(274), 1,
      ts_builtin_sym_end,
    ACTIONS(385), 1,
      anon_sym_COMMA,
    STATE(190), 1,
      aux_sym_type_annotation_repeat1,
    ACTIONS(276), 7,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [7182] = 6,
    ACTIONS(214), 1,
      ts_builtin_sym_end,
    ACTIONS(372), 1,
      anon_sym_QMARK,
    ACTIONS(376), 1,
      anon_sym_LBRACK,
    ACTIONS(378), 1,
      anon_sym_PIPE,
    ACTIONS(374), 2,
      anon_sym_DOT,
      anon_sym_POUND,
    ACTIONS(216), 4,
      anon_sym_COLON,
      anon_sym_COMMA,
      anon_sym_AT,
      sym_comment,
  [7205] = 3,
    ACTIONS(236), 1,
      ts_builtin_sym_end,
    ACTIONS(413), 1,
      anon_sym_COLON,
    ACTIONS(238), 8,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [7222] = 3,
    ACTIONS(282), 1,
      ts_builtin_sym_end,
    ACTIONS(415), 1,
      anon_sym_LPAREN,
    ACTIONS(284), 8,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [7239] = 3,
    ACTIONS(282), 1,
      ts_builtin_sym_end,
    ACTIONS(417), 1,
      anon_sym_LT,
    ACTIONS(284), 8,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [7256] = 8,
    ACTIONS(274), 1,
      ts_builtin_sym_end,
    ACTIONS(385), 1,
      anon_sym_COMMA,
    ACTIONS(387), 1,
      anon_sym_QMARK,
    ACTIONS(395), 1,
      anon_sym_LBRACK,
    ACTIONS(397), 1,
      anon_sym_PIPE,
    STATE(184), 1,
      aux_sym_type_annotation_repeat1,
    ACTIONS(276), 2,
      anon_sym_AT,
      sym_comment,
    ACTIONS(389), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [7283] = 9,
    ACTIONS(419), 1,
      ts_builtin_sym_end,
    ACTIONS(421), 1,
      anon_sym_COLON,
    ACTIONS(423), 1,
      anon_sym_QMARK,
    ACTIONS(427), 1,
      anon_sym_AT,
    ACTIONS(429), 1,
      sym_comment,
    ACTIONS(431), 1,
      anon_sym_LBRACK,
    ACTIONS(433), 1,
      anon_sym_PIPE,
    STATE(587), 1,
      sym_class_at_comment,
    ACTIONS(425), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [7312] = 2,
    ACTIONS(282), 1,
      ts_builtin_sym_end,
    ACTIONS(284), 9,
      anon_sym_COLON,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [7327] = 4,
    ACTIONS(278), 1,
      ts_builtin_sym_end,
    ACTIONS(385), 1,
      anon_sym_COMMA,
    STATE(190), 1,
      aux_sym_type_annotation_repeat1,
    ACTIONS(280), 7,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [7346] = 2,
    ACTIONS(300), 1,
      ts_builtin_sym_end,
    ACTIONS(302), 9,
      anon_sym_COLON,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [7361] = 2,
    ACTIONS(308), 1,
      ts_builtin_sym_end,
    ACTIONS(310), 9,
      anon_sym_COLON,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [7376] = 2,
    ACTIONS(332), 1,
      ts_builtin_sym_end,
    ACTIONS(334), 9,
      anon_sym_COLON,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [7391] = 2,
    ACTIONS(288), 1,
      ts_builtin_sym_end,
    ACTIONS(290), 9,
      anon_sym_COLON,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [7406] = 2,
    ACTIONS(304), 1,
      ts_builtin_sym_end,
    ACTIONS(306), 9,
      anon_sym_COLON,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [7421] = 4,
    ACTIONS(214), 1,
      ts_builtin_sym_end,
    ACTIONS(435), 1,
      anon_sym_COMMA,
    STATE(190), 1,
      aux_sym_type_annotation_repeat1,
    ACTIONS(216), 7,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [7440] = 2,
    ACTIONS(324), 1,
      ts_builtin_sym_end,
    ACTIONS(326), 9,
      anon_sym_COLON,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [7455] = 2,
    ACTIONS(346), 1,
      ts_builtin_sym_end,
    ACTIONS(348), 9,
      anon_sym_COLON,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [7470] = 2,
    ACTIONS(312), 1,
      ts_builtin_sym_end,
    ACTIONS(314), 9,
      anon_sym_COLON,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [7485] = 2,
    ACTIONS(320), 1,
      ts_builtin_sym_end,
    ACTIONS(322), 9,
      anon_sym_COLON,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [7500] = 2,
    ACTIONS(328), 1,
      ts_builtin_sym_end,
    ACTIONS(330), 9,
      anon_sym_COLON,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [7515] = 2,
    ACTIONS(292), 1,
      ts_builtin_sym_end,
    ACTIONS(294), 9,
      anon_sym_COLON,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [7530] = 2,
    ACTIONS(358), 1,
      ts_builtin_sym_end,
    ACTIONS(360), 9,
      anon_sym_COLON,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [7545] = 6,
    ACTIONS(342), 1,
      ts_builtin_sym_end,
    ACTIONS(372), 1,
      anon_sym_QMARK,
    ACTIONS(376), 1,
      anon_sym_LBRACK,
    ACTIONS(378), 1,
      anon_sym_PIPE,
    ACTIONS(374), 2,
      anon_sym_DOT,
      anon_sym_POUND,
    ACTIONS(344), 4,
      anon_sym_COLON,
      anon_sym_COMMA,
      anon_sym_AT,
      sym_comment,
  [7568] = 2,
    ACTIONS(292), 1,
      ts_builtin_sym_end,
    ACTIONS(294), 8,
      anon_sym_COLON,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [7582] = 8,
    ACTIONS(427), 1,
      anon_sym_AT,
    ACTIONS(438), 1,
      ts_builtin_sym_end,
    ACTIONS(440), 1,
      anon_sym_QMARK,
    ACTIONS(444), 1,
      sym_comment,
    ACTIONS(446), 1,
      anon_sym_LBRACK,
    ACTIONS(448), 1,
      anon_sym_PIPE,
    STATE(621), 1,
      sym_class_at_comment,
    ACTIONS(442), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [7608] = 3,
    ACTIONS(282), 1,
      ts_builtin_sym_end,
    ACTIONS(450), 1,
      anon_sym_LT,
    ACTIONS(284), 7,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [7624] = 2,
    ACTIONS(324), 1,
      ts_builtin_sym_end,
    ACTIONS(326), 8,
      anon_sym_COLON,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [7638] = 2,
    ACTIONS(316), 1,
      ts_builtin_sym_end,
    ACTIONS(318), 8,
      anon_sym_COLON,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [7652] = 3,
    ACTIONS(258), 1,
      ts_builtin_sym_end,
    ACTIONS(452), 1,
      anon_sym_COLON,
    ACTIONS(260), 7,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [7668] = 2,
    ACTIONS(312), 1,
      ts_builtin_sym_end,
    ACTIONS(314), 8,
      anon_sym_COLON,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [7682] = 3,
    ACTIONS(264), 1,
      ts_builtin_sym_end,
    ACTIONS(454), 1,
      anon_sym_COLON,
    ACTIONS(266), 7,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [7698] = 2,
    ACTIONS(320), 1,
      ts_builtin_sym_end,
    ACTIONS(322), 8,
      anon_sym_COLON,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [7712] = 8,
    ACTIONS(391), 1,
      anon_sym_AT,
    ACTIONS(440), 1,
      anon_sym_QMARK,
    ACTIONS(446), 1,
      anon_sym_LBRACK,
    ACTIONS(448), 1,
      anon_sym_PIPE,
    ACTIONS(456), 1,
      ts_builtin_sym_end,
    ACTIONS(458), 1,
      sym_comment,
    STATE(652), 1,
      sym_at_comment,
    ACTIONS(442), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [7738] = 4,
    ACTIONS(214), 1,
      ts_builtin_sym_end,
    ACTIONS(460), 1,
      anon_sym_COMMA,
    STATE(209), 1,
      aux_sym_type_annotation_repeat1,
    ACTIONS(216), 6,
      anon_sym_QMARK,
      anon_sym_DOT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [7756] = 8,
    ACTIONS(391), 1,
      anon_sym_AT,
    ACTIONS(440), 1,
      anon_sym_QMARK,
    ACTIONS(446), 1,
      anon_sym_LBRACK,
    ACTIONS(448), 1,
      anon_sym_PIPE,
    ACTIONS(463), 1,
      ts_builtin_sym_end,
    ACTIONS(465), 1,
      sym_comment,
    STATE(595), 1,
      sym_at_comment,
    ACTIONS(442), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [7782] = 8,
    ACTIONS(391), 1,
      anon_sym_AT,
    ACTIONS(440), 1,
      anon_sym_QMARK,
    ACTIONS(446), 1,
      anon_sym_LBRACK,
    ACTIONS(448), 1,
      anon_sym_PIPE,
    ACTIONS(467), 1,
      ts_builtin_sym_end,
    ACTIONS(469), 1,
      sym_comment,
    STATE(594), 1,
      sym_at_comment,
    ACTIONS(442), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [7808] = 3,
    ACTIONS(236), 1,
      ts_builtin_sym_end,
    ACTIONS(413), 1,
      anon_sym_COLON,
    ACTIONS(238), 7,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [7824] = 4,
    ACTIONS(278), 1,
      ts_builtin_sym_end,
    ACTIONS(471), 1,
      anon_sym_COMMA,
    STATE(209), 1,
      aux_sym_type_annotation_repeat1,
    ACTIONS(280), 6,
      anon_sym_QMARK,
      anon_sym_DOT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [7842] = 3,
    ACTIONS(258), 1,
      ts_builtin_sym_end,
    ACTIONS(403), 1,
      anon_sym_COLON,
    ACTIONS(260), 7,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [7858] = 8,
    ACTIONS(274), 1,
      ts_builtin_sym_end,
    ACTIONS(276), 1,
      sym_comment,
    ACTIONS(471), 1,
      anon_sym_COMMA,
    ACTIONS(473), 1,
      anon_sym_QMARK,
    ACTIONS(477), 1,
      anon_sym_LBRACK,
    ACTIONS(479), 1,
      anon_sym_PIPE,
    STATE(213), 1,
      aux_sym_type_annotation_repeat1,
    ACTIONS(475), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [7884] = 4,
    ACTIONS(274), 1,
      ts_builtin_sym_end,
    ACTIONS(471), 1,
      anon_sym_COMMA,
    STATE(209), 1,
      aux_sym_type_annotation_repeat1,
    ACTIONS(276), 6,
      anon_sym_QMARK,
      anon_sym_DOT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [7902] = 4,
    ACTIONS(270), 1,
      ts_builtin_sym_end,
    ACTIONS(471), 1,
      anon_sym_COMMA,
    STATE(209), 1,
      aux_sym_type_annotation_repeat1,
    ACTIONS(272), 6,
      anon_sym_QMARK,
      anon_sym_DOT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [7920] = 8,
    ACTIONS(270), 1,
      ts_builtin_sym_end,
    ACTIONS(272), 1,
      sym_comment,
    ACTIONS(471), 1,
      anon_sym_COMMA,
    ACTIONS(473), 1,
      anon_sym_QMARK,
    ACTIONS(477), 1,
      anon_sym_LBRACK,
    ACTIONS(479), 1,
      anon_sym_PIPE,
    STATE(216), 1,
      aux_sym_type_annotation_repeat1,
    ACTIONS(475), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [7946] = 3,
    ACTIONS(258), 1,
      ts_builtin_sym_end,
    ACTIONS(409), 1,
      anon_sym_COLON,
    ACTIONS(260), 7,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [7962] = 8,
    ACTIONS(264), 1,
      ts_builtin_sym_end,
    ACTIONS(266), 1,
      sym_comment,
    ACTIONS(471), 1,
      anon_sym_COMMA,
    ACTIONS(473), 1,
      anon_sym_QMARK,
    ACTIONS(477), 1,
      anon_sym_LBRACK,
    ACTIONS(479), 1,
      anon_sym_PIPE,
    STATE(217), 1,
      aux_sym_type_annotation_repeat1,
    ACTIONS(475), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [7988] = 2,
    ACTIONS(308), 1,
      ts_builtin_sym_end,
    ACTIONS(310), 8,
      anon_sym_COLON,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [8002] = 3,
    ACTIONS(264), 1,
      ts_builtin_sym_end,
    ACTIONS(399), 1,
      anon_sym_COLON,
    ACTIONS(266), 7,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [8018] = 2,
    ACTIONS(304), 1,
      ts_builtin_sym_end,
    ACTIONS(306), 8,
      anon_sym_COLON,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [8032] = 8,
    ACTIONS(391), 1,
      anon_sym_AT,
    ACTIONS(440), 1,
      anon_sym_QMARK,
    ACTIONS(446), 1,
      anon_sym_LBRACK,
    ACTIONS(448), 1,
      anon_sym_PIPE,
    ACTIONS(481), 1,
      ts_builtin_sym_end,
    ACTIONS(483), 1,
      sym_comment,
    STATE(654), 1,
      sym_at_comment,
    ACTIONS(442), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [8058] = 2,
    ACTIONS(288), 1,
      ts_builtin_sym_end,
    ACTIONS(290), 8,
      anon_sym_COLON,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [8072] = 3,
    ACTIONS(236), 1,
      ts_builtin_sym_end,
    ACTIONS(407), 1,
      anon_sym_COLON,
    ACTIONS(238), 7,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [8088] = 2,
    ACTIONS(300), 1,
      ts_builtin_sym_end,
    ACTIONS(302), 8,
      anon_sym_COLON,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [8102] = 2,
    ACTIONS(336), 1,
      ts_builtin_sym_end,
    ACTIONS(338), 8,
      anon_sym_COLON,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [8116] = 3,
    ACTIONS(282), 1,
      ts_builtin_sym_end,
    ACTIONS(485), 1,
      anon_sym_LPAREN,
    ACTIONS(284), 7,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [8132] = 3,
    ACTIONS(282), 1,
      ts_builtin_sym_end,
    ACTIONS(487), 1,
      anon_sym_LT,
    ACTIONS(284), 7,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [8148] = 2,
    ACTIONS(296), 1,
      ts_builtin_sym_end,
    ACTIONS(298), 8,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [8162] = 2,
    ACTIONS(328), 1,
      ts_builtin_sym_end,
    ACTIONS(330), 8,
      anon_sym_COLON,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [8176] = 8,
    ACTIONS(391), 1,
      anon_sym_AT,
    ACTIONS(440), 1,
      anon_sym_QMARK,
    ACTIONS(446), 1,
      anon_sym_LBRACK,
    ACTIONS(448), 1,
      anon_sym_PIPE,
    ACTIONS(489), 1,
      ts_builtin_sym_end,
    ACTIONS(491), 1,
      sym_comment,
    STATE(582), 1,
      sym_at_comment,
    ACTIONS(442), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [8202] = 3,
    ACTIONS(236), 1,
      ts_builtin_sym_end,
    ACTIONS(493), 1,
      anon_sym_COLON,
    ACTIONS(238), 7,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [8218] = 2,
    ACTIONS(296), 1,
      ts_builtin_sym_end,
    ACTIONS(298), 8,
      anon_sym_COLON,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [8232] = 2,
    ACTIONS(358), 1,
      ts_builtin_sym_end,
    ACTIONS(360), 8,
      anon_sym_COLON,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [8246] = 3,
    ACTIONS(282), 1,
      ts_builtin_sym_end,
    ACTIONS(495), 1,
      anon_sym_LPAREN,
    ACTIONS(284), 7,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [8262] = 2,
    ACTIONS(336), 1,
      ts_builtin_sym_end,
    ACTIONS(338), 8,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [8276] = 2,
    ACTIONS(300), 1,
      ts_builtin_sym_end,
    ACTIONS(302), 8,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [8290] = 2,
    ACTIONS(332), 1,
      ts_builtin_sym_end,
    ACTIONS(334), 8,
      anon_sym_COLON,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [8304] = 2,
    ACTIONS(350), 1,
      ts_builtin_sym_end,
    ACTIONS(352), 8,
      anon_sym_COLON,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [8318] = 3,
    ACTIONS(264), 1,
      ts_builtin_sym_end,
    ACTIONS(401), 1,
      anon_sym_COLON,
    ACTIONS(266), 7,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [8334] = 6,
    ACTIONS(342), 1,
      ts_builtin_sym_end,
    ACTIONS(423), 1,
      anon_sym_QMARK,
    ACTIONS(431), 1,
      anon_sym_LBRACK,
    ACTIONS(433), 1,
      anon_sym_PIPE,
    ACTIONS(425), 2,
      anon_sym_DOT,
      anon_sym_POUND,
    ACTIONS(344), 3,
      anon_sym_COLON,
      anon_sym_AT,
      sym_comment,
  [8356] = 2,
    ACTIONS(282), 1,
      ts_builtin_sym_end,
    ACTIONS(284), 8,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [8370] = 2,
    ACTIONS(332), 1,
      ts_builtin_sym_end,
    ACTIONS(334), 8,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [8384] = 2,
    ACTIONS(288), 1,
      ts_builtin_sym_end,
    ACTIONS(290), 8,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [8398] = 2,
    ACTIONS(304), 1,
      ts_builtin_sym_end,
    ACTIONS(306), 8,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [8412] = 2,
    ACTIONS(282), 1,
      ts_builtin_sym_end,
    ACTIONS(284), 8,
      anon_sym_COLON,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [8426] = 2,
    ACTIONS(324), 1,
      ts_builtin_sym_end,
    ACTIONS(326), 8,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [8440] = 6,
    ACTIONS(214), 1,
      ts_builtin_sym_end,
    ACTIONS(387), 1,
      anon_sym_QMARK,
    ACTIONS(395), 1,
      anon_sym_LBRACK,
    ACTIONS(397), 1,
      anon_sym_PIPE,
    ACTIONS(389), 2,
      anon_sym_DOT,
      anon_sym_POUND,
    ACTIONS(216), 3,
      anon_sym_COMMA,
      anon_sym_AT,
      sym_comment,
  [8462] = 2,
    ACTIONS(328), 1,
      ts_builtin_sym_end,
    ACTIONS(330), 8,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [8476] = 2,
    ACTIONS(358), 1,
      ts_builtin_sym_end,
    ACTIONS(360), 8,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [8490] = 2,
    ACTIONS(350), 1,
      ts_builtin_sym_end,
    ACTIONS(352), 8,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [8504] = 6,
    ACTIONS(342), 1,
      ts_builtin_sym_end,
    ACTIONS(387), 1,
      anon_sym_QMARK,
    ACTIONS(395), 1,
      anon_sym_LBRACK,
    ACTIONS(397), 1,
      anon_sym_PIPE,
    ACTIONS(389), 2,
      anon_sym_DOT,
      anon_sym_POUND,
    ACTIONS(344), 3,
      anon_sym_COMMA,
      anon_sym_AT,
      sym_comment,
  [8526] = 8,
    ACTIONS(391), 1,
      anon_sym_AT,
    ACTIONS(440), 1,
      anon_sym_QMARK,
    ACTIONS(446), 1,
      anon_sym_LBRACK,
    ACTIONS(448), 1,
      anon_sym_PIPE,
    ACTIONS(497), 1,
      ts_builtin_sym_end,
    ACTIONS(499), 1,
      sym_comment,
    STATE(631), 1,
      sym_at_comment,
    ACTIONS(442), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [8552] = 8,
    ACTIONS(391), 1,
      anon_sym_AT,
    ACTIONS(440), 1,
      anon_sym_QMARK,
    ACTIONS(446), 1,
      anon_sym_LBRACK,
    ACTIONS(448), 1,
      anon_sym_PIPE,
    ACTIONS(501), 1,
      ts_builtin_sym_end,
    ACTIONS(503), 1,
      sym_comment,
    STATE(633), 1,
      sym_at_comment,
    ACTIONS(442), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [8578] = 2,
    ACTIONS(354), 1,
      ts_builtin_sym_end,
    ACTIONS(356), 8,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [8592] = 2,
    ACTIONS(354), 1,
      ts_builtin_sym_end,
    ACTIONS(356), 8,
      anon_sym_COLON,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [8606] = 2,
    ACTIONS(346), 1,
      ts_builtin_sym_end,
    ACTIONS(348), 8,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [8620] = 2,
    ACTIONS(346), 1,
      ts_builtin_sym_end,
    ACTIONS(348), 8,
      anon_sym_COLON,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [8634] = 8,
    ACTIONS(264), 1,
      ts_builtin_sym_end,
    ACTIONS(266), 1,
      sym_comment,
    ACTIONS(471), 1,
      anon_sym_COMMA,
    ACTIONS(473), 1,
      anon_sym_QMARK,
    ACTIONS(477), 1,
      anon_sym_LBRACK,
    ACTIONS(479), 1,
      anon_sym_PIPE,
    STATE(419), 1,
      aux_sym_type_annotation_repeat1,
    ACTIONS(475), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [8660] = 2,
    ACTIONS(316), 1,
      ts_builtin_sym_end,
    ACTIONS(318), 8,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [8674] = 2,
    ACTIONS(312), 1,
      ts_builtin_sym_end,
    ACTIONS(314), 8,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [8688] = 2,
    ACTIONS(320), 1,
      ts_builtin_sym_end,
    ACTIONS(322), 8,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [8702] = 8,
    ACTIONS(270), 1,
      ts_builtin_sym_end,
    ACTIONS(272), 1,
      sym_comment,
    ACTIONS(471), 1,
      anon_sym_COMMA,
    ACTIONS(473), 1,
      anon_sym_QMARK,
    ACTIONS(477), 1,
      anon_sym_LBRACK,
    ACTIONS(479), 1,
      anon_sym_PIPE,
    STATE(420), 1,
      aux_sym_type_annotation_repeat1,
    ACTIONS(475), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [8728] = 8,
    ACTIONS(274), 1,
      ts_builtin_sym_end,
    ACTIONS(276), 1,
      sym_comment,
    ACTIONS(471), 1,
      anon_sym_COMMA,
    ACTIONS(473), 1,
      anon_sym_QMARK,
    ACTIONS(477), 1,
      anon_sym_LBRACK,
    ACTIONS(479), 1,
      anon_sym_PIPE,
    STATE(418), 1,
      aux_sym_type_annotation_repeat1,
    ACTIONS(475), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [8754] = 2,
    ACTIONS(292), 1,
      ts_builtin_sym_end,
    ACTIONS(294), 8,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [8768] = 2,
    ACTIONS(308), 1,
      ts_builtin_sym_end,
    ACTIONS(310), 8,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [8782] = 2,
    ACTIONS(336), 1,
      ts_builtin_sym_end,
    ACTIONS(338), 7,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [8795] = 7,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(505), 1,
      anon_sym_COMMA,
    ACTIONS(507), 1,
      anon_sym_RPAREN,
    STATE(493), 1,
      aux_sym_function_type_repeat2,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [8818] = 7,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(505), 1,
      anon_sym_COMMA,
    ACTIONS(509), 1,
      anon_sym_RPAREN,
    STATE(451), 1,
      aux_sym_function_type_repeat2,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [8841] = 7,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(513), 1,
      anon_sym_RBRACE,
    STATE(459), 1,
      aux_sym_table_literal_type_repeat1,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [8864] = 7,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(515), 1,
      anon_sym_RBRACE,
    STATE(458), 1,
      aux_sym_table_literal_type_repeat1,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [8887] = 2,
    ACTIONS(282), 1,
      ts_builtin_sym_end,
    ACTIONS(284), 7,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [8900] = 7,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(517), 1,
      anon_sym_RBRACE,
    STATE(455), 1,
      aux_sym_table_literal_type_repeat1,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [8923] = 2,
    ACTIONS(332), 1,
      ts_builtin_sym_end,
    ACTIONS(334), 7,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [8936] = 2,
    ACTIONS(282), 1,
      ts_builtin_sym_end,
    ACTIONS(284), 7,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [8949] = 2,
    ACTIONS(332), 1,
      ts_builtin_sym_end,
    ACTIONS(334), 7,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [8962] = 2,
    ACTIONS(288), 1,
      ts_builtin_sym_end,
    ACTIONS(290), 7,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [8975] = 2,
    ACTIONS(304), 1,
      ts_builtin_sym_end,
    ACTIONS(306), 7,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [8988] = 2,
    ACTIONS(288), 1,
      ts_builtin_sym_end,
    ACTIONS(290), 7,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [9001] = 2,
    ACTIONS(324), 1,
      ts_builtin_sym_end,
    ACTIONS(326), 7,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [9014] = 3,
    ACTIONS(236), 1,
      ts_builtin_sym_end,
    ACTIONS(493), 1,
      anon_sym_COLON,
    ACTIONS(238), 6,
      anon_sym_QMARK,
      anon_sym_DOT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [9029] = 2,
    ACTIONS(328), 1,
      ts_builtin_sym_end,
    ACTIONS(330), 7,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [9042] = 2,
    ACTIONS(358), 1,
      ts_builtin_sym_end,
    ACTIONS(360), 7,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [9055] = 2,
    ACTIONS(350), 1,
      ts_builtin_sym_end,
    ACTIONS(352), 7,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [9068] = 6,
    ACTIONS(342), 1,
      ts_builtin_sym_end,
    ACTIONS(440), 1,
      anon_sym_QMARK,
    ACTIONS(446), 1,
      anon_sym_LBRACK,
    ACTIONS(448), 1,
      anon_sym_PIPE,
    ACTIONS(344), 2,
      anon_sym_AT,
      sym_comment,
    ACTIONS(442), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [9089] = 6,
    ACTIONS(214), 1,
      ts_builtin_sym_end,
    ACTIONS(473), 1,
      anon_sym_QMARK,
    ACTIONS(477), 1,
      anon_sym_LBRACK,
    ACTIONS(479), 1,
      anon_sym_PIPE,
    ACTIONS(216), 2,
      anon_sym_COMMA,
      sym_comment,
    ACTIONS(475), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [9110] = 2,
    ACTIONS(304), 1,
      ts_builtin_sym_end,
    ACTIONS(306), 7,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [9123] = 2,
    ACTIONS(354), 1,
      ts_builtin_sym_end,
    ACTIONS(356), 7,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [9136] = 3,
    ACTIONS(258), 1,
      ts_builtin_sym_end,
    ACTIONS(452), 1,
      anon_sym_COLON,
    ACTIONS(260), 6,
      anon_sym_QMARK,
      anon_sym_DOT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [9151] = 2,
    ACTIONS(346), 1,
      ts_builtin_sym_end,
    ACTIONS(348), 7,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [9164] = 2,
    ACTIONS(324), 1,
      ts_builtin_sym_end,
    ACTIONS(326), 7,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [9177] = 3,
    ACTIONS(264), 1,
      ts_builtin_sym_end,
    ACTIONS(454), 1,
      anon_sym_COLON,
    ACTIONS(266), 6,
      anon_sym_QMARK,
      anon_sym_DOT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [9192] = 2,
    ACTIONS(316), 1,
      ts_builtin_sym_end,
    ACTIONS(318), 7,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [9205] = 2,
    ACTIONS(312), 1,
      ts_builtin_sym_end,
    ACTIONS(314), 7,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [9218] = 2,
    ACTIONS(320), 1,
      ts_builtin_sym_end,
    ACTIONS(322), 7,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [9231] = 2,
    ACTIONS(328), 1,
      ts_builtin_sym_end,
    ACTIONS(330), 7,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [9244] = 2,
    ACTIONS(358), 1,
      ts_builtin_sym_end,
    ACTIONS(360), 7,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [9257] = 2,
    ACTIONS(292), 1,
      ts_builtin_sym_end,
    ACTIONS(294), 7,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [9270] = 2,
    ACTIONS(308), 1,
      ts_builtin_sym_end,
    ACTIONS(310), 7,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [9283] = 2,
    ACTIONS(350), 1,
      ts_builtin_sym_end,
    ACTIONS(352), 7,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [9296] = 7,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(519), 1,
      anon_sym_RBRACE,
    STATE(460), 1,
      aux_sym_table_literal_type_repeat1,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [9319] = 2,
    ACTIONS(300), 1,
      ts_builtin_sym_end,
    ACTIONS(302), 7,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [9332] = 2,
    ACTIONS(336), 1,
      ts_builtin_sym_end,
    ACTIONS(338), 7,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [9345] = 6,
    ACTIONS(342), 1,
      ts_builtin_sym_end,
    ACTIONS(473), 1,
      anon_sym_QMARK,
    ACTIONS(477), 1,
      anon_sym_LBRACK,
    ACTIONS(479), 1,
      anon_sym_PIPE,
    ACTIONS(344), 2,
      anon_sym_COMMA,
      sym_comment,
    ACTIONS(475), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [9366] = 2,
    ACTIONS(296), 1,
      ts_builtin_sym_end,
    ACTIONS(298), 7,
      anon_sym_QMARK,
      anon_sym_DOT,
      anon_sym_AT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [9379] = 3,
    ACTIONS(282), 1,
      ts_builtin_sym_end,
    ACTIONS(521), 1,
      anon_sym_LT,
    ACTIONS(284), 6,
      anon_sym_QMARK,
      anon_sym_DOT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [9394] = 3,
    ACTIONS(282), 1,
      ts_builtin_sym_end,
    ACTIONS(523), 1,
      anon_sym_LPAREN,
    ACTIONS(284), 6,
      anon_sym_QMARK,
      anon_sym_DOT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [9409] = 7,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(525), 1,
      anon_sym_RBRACE,
    STATE(449), 1,
      aux_sym_table_literal_type_repeat1,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [9432] = 7,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(505), 1,
      anon_sym_COMMA,
    ACTIONS(527), 1,
      anon_sym_RPAREN,
    STATE(432), 1,
      aux_sym_function_type_repeat2,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [9455] = 7,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(529), 1,
      anon_sym_RBRACE,
    STATE(427), 1,
      aux_sym_table_literal_type_repeat1,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [9478] = 7,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(531), 1,
      anon_sym_RBRACE,
    STATE(428), 1,
      aux_sym_table_literal_type_repeat1,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [9501] = 7,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(533), 1,
      anon_sym_RBRACE,
    STATE(430), 1,
      aux_sym_table_literal_type_repeat1,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [9524] = 7,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(535), 1,
      anon_sym_RBRACE,
    STATE(436), 1,
      aux_sym_table_literal_type_repeat1,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [9547] = 2,
    ACTIONS(354), 1,
      ts_builtin_sym_end,
    ACTIONS(356), 7,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [9560] = 7,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(505), 1,
      anon_sym_COMMA,
    ACTIONS(537), 1,
      anon_sym_RPAREN,
    STATE(442), 1,
      aux_sym_function_type_repeat2,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [9583] = 7,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(539), 1,
      anon_sym_RBRACE,
    STATE(464), 1,
      aux_sym_table_literal_type_repeat1,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [9606] = 7,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(541), 1,
      anon_sym_RBRACE,
    STATE(466), 1,
      aux_sym_table_literal_type_repeat1,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [9629] = 3,
    ACTIONS(543), 1,
      anon_sym_COLON,
    ACTIONS(545), 1,
      anon_sym_QMARK,
    ACTIONS(332), 6,
      anon_sym_COMMA,
      anon_sym_DOT,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [9644] = 2,
    ACTIONS(346), 1,
      ts_builtin_sym_end,
    ACTIONS(348), 7,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [9657] = 2,
    ACTIONS(316), 1,
      ts_builtin_sym_end,
    ACTIONS(318), 7,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [9670] = 7,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(505), 1,
      anon_sym_COMMA,
    ACTIONS(547), 1,
      anon_sym_RPAREN,
    STATE(484), 1,
      aux_sym_function_type_repeat2,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [9693] = 2,
    ACTIONS(312), 1,
      ts_builtin_sym_end,
    ACTIONS(314), 7,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [9706] = 7,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(549), 1,
      anon_sym_RBRACE,
    STATE(474), 1,
      aux_sym_table_literal_type_repeat1,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [9729] = 7,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(551), 1,
      anon_sym_RBRACE,
    STATE(483), 1,
      aux_sym_table_literal_type_repeat1,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [9752] = 2,
    ACTIONS(320), 1,
      ts_builtin_sym_end,
    ACTIONS(322), 7,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [9765] = 7,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(505), 1,
      anon_sym_COMMA,
    ACTIONS(553), 1,
      anon_sym_RPAREN,
    STATE(486), 1,
      aux_sym_function_type_repeat2,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [9788] = 7,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(555), 1,
      anon_sym_RBRACE,
    STATE(498), 1,
      aux_sym_table_literal_type_repeat1,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [9811] = 7,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(557), 1,
      anon_sym_RBRACE,
    STATE(500), 1,
      aux_sym_table_literal_type_repeat1,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [9834] = 2,
    ACTIONS(292), 1,
      ts_builtin_sym_end,
    ACTIONS(294), 7,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [9847] = 2,
    ACTIONS(308), 1,
      ts_builtin_sym_end,
    ACTIONS(310), 7,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [9860] = 7,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(559), 1,
      anon_sym_RBRACE,
    STATE(496), 1,
      aux_sym_table_literal_type_repeat1,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [9883] = 7,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(561), 1,
      anon_sym_RBRACE,
    STATE(502), 1,
      aux_sym_table_literal_type_repeat1,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [9906] = 7,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(563), 1,
      anon_sym_RBRACE,
    STATE(488), 1,
      aux_sym_table_literal_type_repeat1,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [9929] = 2,
    ACTIONS(300), 1,
      ts_builtin_sym_end,
    ACTIONS(302), 7,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [9942] = 7,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(565), 1,
      anon_sym_RBRACE,
    STATE(446), 1,
      aux_sym_table_literal_type_repeat1,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [9965] = 7,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(567), 1,
      anon_sym_RBRACE,
    STATE(477), 1,
      aux_sym_table_literal_type_repeat1,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [9988] = 2,
    ACTIONS(296), 1,
      ts_builtin_sym_end,
    ACTIONS(298), 7,
      anon_sym_COMMA,
      anon_sym_QMARK,
      anon_sym_DOT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [10001] = 7,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(569), 1,
      anon_sym_RBRACE,
    STATE(475), 1,
      aux_sym_table_literal_type_repeat1,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [10024] = 7,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(571), 1,
      anon_sym_RBRACE,
    STATE(473), 1,
      aux_sym_table_literal_type_repeat1,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [10047] = 7,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(505), 1,
      anon_sym_COMMA,
    ACTIONS(573), 1,
      anon_sym_RPAREN,
    STATE(421), 1,
      aux_sym_function_type_repeat2,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [10070] = 7,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(575), 1,
      anon_sym_RBRACE,
    STATE(439), 1,
      aux_sym_table_literal_type_repeat1,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [10093] = 7,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(577), 1,
      anon_sym_RBRACE,
    STATE(443), 1,
      aux_sym_table_literal_type_repeat1,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [10116] = 7,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(579), 1,
      anon_sym_RBRACE,
    STATE(445), 1,
      aux_sym_table_literal_type_repeat1,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [10139] = 7,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(581), 1,
      anon_sym_RBRACE,
    STATE(469), 1,
      aux_sym_table_literal_type_repeat1,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [10162] = 7,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(505), 1,
      anon_sym_COMMA,
    ACTIONS(583), 1,
      anon_sym_RPAREN,
    STATE(467), 1,
      aux_sym_function_type_repeat2,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [10185] = 7,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(585), 1,
      anon_sym_RBRACE,
    STATE(497), 1,
      aux_sym_table_literal_type_repeat1,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [10208] = 7,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(587), 1,
      anon_sym_RBRACE,
    STATE(447), 1,
      aux_sym_table_literal_type_repeat1,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [10231] = 6,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(589), 1,
      anon_sym_COMMA,
    ACTIONS(591), 1,
      anon_sym_GT,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [10251] = 5,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
    ACTIONS(593), 2,
      anon_sym_COMMA,
      anon_sym_RPAREN,
  [10269] = 5,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
    ACTIONS(595), 2,
      anon_sym_COMMA,
      anon_sym_RPAREN,
  [10287] = 6,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(597), 1,
      anon_sym_COMMA,
    ACTIONS(599), 1,
      anon_sym_GT,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [10307] = 2,
    ACTIONS(296), 1,
      ts_builtin_sym_end,
    ACTIONS(298), 6,
      anon_sym_QMARK,
      anon_sym_DOT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [10319] = 2,
    ACTIONS(336), 1,
      ts_builtin_sym_end,
    ACTIONS(338), 6,
      anon_sym_QMARK,
      anon_sym_DOT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [10331] = 6,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(601), 1,
      anon_sym_COMMA,
    ACTIONS(603), 1,
      anon_sym_GT,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [10351] = 2,
    ACTIONS(300), 1,
      ts_builtin_sym_end,
    ACTIONS(302), 6,
      anon_sym_QMARK,
      anon_sym_DOT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [10363] = 2,
    ACTIONS(308), 1,
      ts_builtin_sym_end,
    ACTIONS(310), 6,
      anon_sym_QMARK,
      anon_sym_DOT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [10375] = 2,
    ACTIONS(292), 1,
      ts_builtin_sym_end,
    ACTIONS(294), 6,
      anon_sym_QMARK,
      anon_sym_DOT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [10387] = 6,
    ACTIONS(605), 1,
      ts_builtin_sym_end,
    ACTIONS(607), 1,
      anon_sym_QMARK,
    ACTIONS(611), 1,
      sym_comment,
    ACTIONS(613), 1,
      anon_sym_LBRACK,
    ACTIONS(615), 1,
      anon_sym_PIPE,
    ACTIONS(609), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [10407] = 2,
    ACTIONS(320), 1,
      ts_builtin_sym_end,
    ACTIONS(322), 6,
      anon_sym_QMARK,
      anon_sym_DOT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [10419] = 5,
    ACTIONS(619), 1,
      anon_sym_LBRACK,
    ACTIONS(621), 1,
      sym_identifier,
    STATE(17), 1,
      sym_positional_field,
    STATE(481), 1,
      sym_qualifier,
    ACTIONS(617), 3,
      anon_sym_public,
      anon_sym_protected,
      anon_sym_private,
  [10437] = 2,
    ACTIONS(312), 1,
      ts_builtin_sym_end,
    ACTIONS(314), 6,
      anon_sym_QMARK,
      anon_sym_DOT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [10449] = 6,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(623), 1,
      anon_sym_COMMA,
    ACTIONS(625), 1,
      anon_sym_GT,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [10469] = 2,
    ACTIONS(316), 1,
      ts_builtin_sym_end,
    ACTIONS(318), 6,
      anon_sym_QMARK,
      anon_sym_DOT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [10481] = 5,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
    ACTIONS(627), 2,
      anon_sym_COMMA,
      anon_sym_RPAREN,
  [10499] = 2,
    ACTIONS(346), 1,
      ts_builtin_sym_end,
    ACTIONS(348), 6,
      anon_sym_QMARK,
      anon_sym_DOT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [10511] = 2,
    ACTIONS(354), 1,
      ts_builtin_sym_end,
    ACTIONS(356), 6,
      anon_sym_QMARK,
      anon_sym_DOT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [10523] = 6,
    ACTIONS(342), 1,
      ts_builtin_sym_end,
    ACTIONS(344), 1,
      sym_comment,
    ACTIONS(607), 1,
      anon_sym_QMARK,
    ACTIONS(613), 1,
      anon_sym_LBRACK,
    ACTIONS(615), 1,
      anon_sym_PIPE,
    ACTIONS(609), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [10543] = 2,
    ACTIONS(350), 1,
      ts_builtin_sym_end,
    ACTIONS(352), 6,
      anon_sym_QMARK,
      anon_sym_DOT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [10555] = 2,
    ACTIONS(358), 1,
      ts_builtin_sym_end,
    ACTIONS(360), 6,
      anon_sym_QMARK,
      anon_sym_DOT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [10567] = 6,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(629), 1,
      anon_sym_COMMA,
    ACTIONS(631), 1,
      anon_sym_GT,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [10587] = 6,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(633), 1,
      anon_sym_COMMA,
    ACTIONS(635), 1,
      anon_sym_GT,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [10607] = 2,
    ACTIONS(328), 1,
      ts_builtin_sym_end,
    ACTIONS(330), 6,
      anon_sym_QMARK,
      anon_sym_DOT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [10619] = 2,
    ACTIONS(324), 1,
      ts_builtin_sym_end,
    ACTIONS(326), 6,
      anon_sym_QMARK,
      anon_sym_DOT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [10631] = 6,
    ACTIONS(607), 1,
      anon_sym_QMARK,
    ACTIONS(613), 1,
      anon_sym_LBRACK,
    ACTIONS(615), 1,
      anon_sym_PIPE,
    ACTIONS(637), 1,
      ts_builtin_sym_end,
    ACTIONS(639), 1,
      sym_comment,
    ACTIONS(609), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [10651] = 2,
    ACTIONS(304), 1,
      ts_builtin_sym_end,
    ACTIONS(306), 6,
      anon_sym_QMARK,
      anon_sym_DOT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [10663] = 6,
    ACTIONS(607), 1,
      anon_sym_QMARK,
    ACTIONS(613), 1,
      anon_sym_LBRACK,
    ACTIONS(615), 1,
      anon_sym_PIPE,
    ACTIONS(641), 1,
      ts_builtin_sym_end,
    ACTIONS(643), 1,
      sym_comment,
    ACTIONS(609), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [10683] = 2,
    ACTIONS(288), 1,
      ts_builtin_sym_end,
    ACTIONS(290), 6,
      anon_sym_QMARK,
      anon_sym_DOT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [10695] = 6,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(645), 1,
      anon_sym_COMMA,
    ACTIONS(647), 1,
      anon_sym_GT,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [10715] = 2,
    ACTIONS(332), 1,
      ts_builtin_sym_end,
    ACTIONS(334), 6,
      anon_sym_QMARK,
      anon_sym_DOT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [10727] = 2,
    ACTIONS(282), 1,
      ts_builtin_sym_end,
    ACTIONS(284), 6,
      anon_sym_QMARK,
      anon_sym_DOT,
      sym_comment,
      anon_sym_LBRACK,
      anon_sym_PIPE,
      anon_sym_POUND,
  [10739] = 5,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
    ACTIONS(649), 2,
      anon_sym_COMMA,
      anon_sym_RBRACE,
  [10757] = 5,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
    ACTIONS(651), 2,
      anon_sym_COMMA,
      anon_sym_RBRACE,
  [10775] = 5,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
    ACTIONS(653), 2,
      anon_sym_COMMA,
      anon_sym_RBRACE,
  [10793] = 6,
    ACTIONS(607), 1,
      anon_sym_QMARK,
    ACTIONS(613), 1,
      anon_sym_LBRACK,
    ACTIONS(615), 1,
      anon_sym_PIPE,
    ACTIONS(655), 1,
      ts_builtin_sym_end,
    ACTIONS(657), 1,
      sym_comment,
    ACTIONS(609), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [10813] = 6,
    ACTIONS(607), 1,
      anon_sym_QMARK,
    ACTIONS(613), 1,
      anon_sym_LBRACK,
    ACTIONS(615), 1,
      anon_sym_PIPE,
    ACTIONS(659), 1,
      ts_builtin_sym_end,
    ACTIONS(661), 1,
      sym_comment,
    ACTIONS(609), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [10833] = 5,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
    ACTIONS(663), 2,
      anon_sym_COMMA,
      anon_sym_RBRACE,
  [10851] = 5,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(665), 1,
      anon_sym_GT,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [10868] = 6,
    ACTIONS(385), 1,
      anon_sym_COMMA,
    ACTIONS(391), 1,
      anon_sym_AT,
    ACTIONS(667), 1,
      ts_builtin_sym_end,
    ACTIONS(669), 1,
      sym_comment,
    STATE(413), 1,
      aux_sym_type_annotation_repeat1,
    STATE(593), 1,
      sym_at_comment,
  [10887] = 5,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(671), 1,
      anon_sym_GT,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [10904] = 5,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(673), 1,
      anon_sym_RPAREN,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [10921] = 5,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(675), 1,
      anon_sym_RPAREN,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [10938] = 5,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(677), 1,
      anon_sym_GT,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [10955] = 5,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(679), 1,
      anon_sym_GT,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [10972] = 5,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(681), 1,
      anon_sym_GT,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [10989] = 5,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(683), 1,
      anon_sym_RBRACK2,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [11006] = 5,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(685), 1,
      anon_sym_RPAREN,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [11023] = 5,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(687), 1,
      anon_sym_RBRACK2,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [11040] = 5,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(689), 1,
      anon_sym_RPAREN,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [11057] = 5,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(691), 1,
      anon_sym_GT,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [11074] = 5,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(693), 1,
      anon_sym_RBRACK2,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [11091] = 5,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(695), 1,
      anon_sym_RBRACK2,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [11108] = 5,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(697), 1,
      anon_sym_RPAREN,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [11125] = 5,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(699), 1,
      anon_sym_RBRACK2,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [11142] = 5,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(701), 1,
      anon_sym_RBRACK2,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [11159] = 5,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(703), 1,
      anon_sym_RBRACK2,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [11176] = 5,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(705), 1,
      anon_sym_GT,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [11193] = 5,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(707), 1,
      anon_sym_RBRACK2,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [11210] = 5,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(709), 1,
      anon_sym_RPAREN,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [11227] = 5,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(711), 1,
      anon_sym_RPAREN,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [11244] = 5,
    ACTIONS(51), 1,
      anon_sym_QMARK,
    ACTIONS(57), 1,
      anon_sym_LBRACK,
    ACTIONS(63), 1,
      anon_sym_PIPE,
    ACTIONS(713), 1,
      anon_sym_RPAREN,
    ACTIONS(53), 2,
      anon_sym_DOT,
      anon_sym_POUND,
  [11261] = 4,
    ACTIONS(214), 1,
      ts_builtin_sym_end,
    ACTIONS(435), 1,
      anon_sym_COMMA,
    STATE(413), 1,
      aux_sym_type_annotation_repeat1,
    ACTIONS(216), 2,
      anon_sym_AT,
      sym_comment,
  [11275] = 1,
    ACTIONS(715), 5,
      anon_sym_5_DOT1,
      anon_sym_5_DOT2,
      anon_sym_5_DOT3,
      anon_sym_5_DOT4,
      anon_sym_JIT,
  [11283] = 4,
    ACTIONS(717), 1,
      ts_builtin_sym_end,
    ACTIONS(719), 1,
      anon_sym_COLON,
    ACTIONS(721), 1,
      anon_sym_COMMA,
    ACTIONS(723), 1,
      sym_comment,
  [11296] = 3,
    ACTIONS(725), 1,
      anon_sym_DOT_DOT_DOT,
    STATE(546), 1,
      sym_parameter,
    ACTIONS(727), 2,
      anon_sym_self,
      sym_identifier,
  [11307] = 4,
    ACTIONS(214), 1,
      ts_builtin_sym_end,
    ACTIONS(216), 1,
      sym_comment,
    ACTIONS(460), 1,
      anon_sym_COMMA,
    STATE(417), 1,
      aux_sym_type_annotation_repeat1,
  [11320] = 4,
    ACTIONS(278), 1,
      ts_builtin_sym_end,
    ACTIONS(280), 1,
      sym_comment,
    ACTIONS(471), 1,
      anon_sym_COMMA,
    STATE(417), 1,
      aux_sym_type_annotation_repeat1,
  [11333] = 4,
    ACTIONS(270), 1,
      ts_builtin_sym_end,
    ACTIONS(272), 1,
      sym_comment,
    ACTIONS(471), 1,
      anon_sym_COMMA,
    STATE(417), 1,
      aux_sym_type_annotation_repeat1,
  [11346] = 4,
    ACTIONS(274), 1,
      ts_builtin_sym_end,
    ACTIONS(276), 1,
      sym_comment,
    ACTIONS(471), 1,
      anon_sym_COMMA,
    STATE(417), 1,
      aux_sym_type_annotation_repeat1,
  [11359] = 3,
    ACTIONS(505), 1,
      anon_sym_COMMA,
    ACTIONS(729), 1,
      anon_sym_RPAREN,
    STATE(444), 1,
      aux_sym_function_type_repeat2,
  [11369] = 3,
    ACTIONS(547), 1,
      anon_sym_RPAREN,
    ACTIONS(731), 1,
      anon_sym_COMMA,
    STATE(476), 1,
      aux_sym_function_type_repeat1,
  [11379] = 3,
    ACTIONS(733), 1,
      anon_sym_LBRACK,
    ACTIONS(735), 1,
      anon_sym_RBRACE,
    ACTIONS(737), 1,
      sym_identifier,
  [11389] = 3,
    ACTIONS(527), 1,
      anon_sym_RPAREN,
    ACTIONS(543), 1,
      anon_sym_COLON,
    ACTIONS(739), 1,
      anon_sym_QMARK,
  [11399] = 3,
    ACTIONS(258), 1,
      ts_builtin_sym_end,
    ACTIONS(260), 1,
      sym_comment,
    ACTIONS(741), 1,
      anon_sym_COLON,
  [11409] = 3,
    ACTIONS(743), 1,
      anon_sym_LBRACK,
    ACTIONS(745), 1,
      anon_sym_RBRACE,
    ACTIONS(747), 1,
      sym_identifier,
  [11419] = 3,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(749), 1,
      anon_sym_RBRACE,
    STATE(495), 1,
      aux_sym_table_literal_type_repeat1,
  [11429] = 3,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(751), 1,
      anon_sym_RBRACE,
    STATE(495), 1,
      aux_sym_table_literal_type_repeat1,
  [11439] = 3,
    ACTIONS(753), 1,
      ts_builtin_sym_end,
    ACTIONS(755), 1,
      anon_sym_COLON,
    ACTIONS(757), 1,
      sym_comment,
  [11449] = 3,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(759), 1,
      anon_sym_RBRACE,
    STATE(495), 1,
      aux_sym_table_literal_type_repeat1,
  [11459] = 3,
    ACTIONS(543), 1,
      anon_sym_COLON,
    ACTIONS(573), 1,
      anon_sym_RPAREN,
    ACTIONS(761), 1,
      anon_sym_QMARK,
  [11469] = 3,
    ACTIONS(505), 1,
      anon_sym_COMMA,
    ACTIONS(763), 1,
      anon_sym_RPAREN,
    STATE(444), 1,
      aux_sym_function_type_repeat2,
  [11479] = 3,
    ACTIONS(573), 1,
      anon_sym_RPAREN,
    ACTIONS(731), 1,
      anon_sym_COMMA,
    STATE(438), 1,
      aux_sym_function_type_repeat1,
  [11489] = 3,
    ACTIONS(731), 1,
      anon_sym_COMMA,
    ACTIONS(763), 1,
      anon_sym_RPAREN,
    STATE(435), 1,
      aux_sym_function_type_repeat1,
  [11499] = 3,
    ACTIONS(765), 1,
      anon_sym_COMMA,
    ACTIONS(768), 1,
      anon_sym_RPAREN,
    STATE(435), 1,
      aux_sym_function_type_repeat1,
  [11509] = 3,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(770), 1,
      anon_sym_RBRACE,
    STATE(495), 1,
      aux_sym_table_literal_type_repeat1,
  [11519] = 3,
    ACTIONS(527), 1,
      anon_sym_RPAREN,
    ACTIONS(731), 1,
      anon_sym_COMMA,
    STATE(434), 1,
      aux_sym_function_type_repeat1,
  [11529] = 3,
    ACTIONS(729), 1,
      anon_sym_RPAREN,
    ACTIONS(731), 1,
      anon_sym_COMMA,
    STATE(435), 1,
      aux_sym_function_type_repeat1,
  [11539] = 3,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(772), 1,
      anon_sym_RBRACE,
    STATE(495), 1,
      aux_sym_table_literal_type_repeat1,
  [11549] = 3,
    ACTIONS(236), 1,
      ts_builtin_sym_end,
    ACTIONS(238), 1,
      sym_comment,
    ACTIONS(774), 1,
      anon_sym_COLON,
  [11559] = 3,
    ACTIONS(731), 1,
      anon_sym_COMMA,
    ACTIONS(776), 1,
      anon_sym_RPAREN,
    STATE(435), 1,
      aux_sym_function_type_repeat1,
  [11569] = 3,
    ACTIONS(505), 1,
      anon_sym_COMMA,
    ACTIONS(776), 1,
      anon_sym_RPAREN,
    STATE(444), 1,
      aux_sym_function_type_repeat2,
  [11579] = 3,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(778), 1,
      anon_sym_RBRACE,
    STATE(495), 1,
      aux_sym_table_literal_type_repeat1,
  [11589] = 3,
    ACTIONS(595), 1,
      anon_sym_RPAREN,
    ACTIONS(780), 1,
      anon_sym_COMMA,
    STATE(444), 1,
      aux_sym_function_type_repeat2,
  [11599] = 3,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(783), 1,
      anon_sym_RBRACE,
    STATE(495), 1,
      aux_sym_table_literal_type_repeat1,
  [11609] = 3,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(785), 1,
      anon_sym_RBRACE,
    STATE(495), 1,
      aux_sym_table_literal_type_repeat1,
  [11619] = 3,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(787), 1,
      anon_sym_RBRACE,
    STATE(495), 1,
      aux_sym_table_literal_type_repeat1,
  [11629] = 3,
    ACTIONS(537), 1,
      anon_sym_RPAREN,
    ACTIONS(731), 1,
      anon_sym_COMMA,
    STATE(441), 1,
      aux_sym_function_type_repeat1,
  [11639] = 3,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(789), 1,
      anon_sym_RBRACE,
    STATE(495), 1,
      aux_sym_table_literal_type_repeat1,
  [11649] = 3,
    ACTIONS(731), 1,
      anon_sym_COMMA,
    ACTIONS(791), 1,
      anon_sym_RPAREN,
    STATE(435), 1,
      aux_sym_function_type_repeat1,
  [11659] = 3,
    ACTIONS(505), 1,
      anon_sym_COMMA,
    ACTIONS(791), 1,
      anon_sym_RPAREN,
    STATE(444), 1,
      aux_sym_function_type_repeat2,
  [11669] = 3,
    ACTIONS(537), 1,
      anon_sym_RPAREN,
    ACTIONS(543), 1,
      anon_sym_COLON,
    ACTIONS(793), 1,
      anon_sym_QMARK,
  [11679] = 3,
    ACTIONS(795), 1,
      ts_builtin_sym_end,
    ACTIONS(797), 1,
      anon_sym_COMMA,
    STATE(480), 1,
      aux_sym_diagnostic_annotation_repeat1,
  [11689] = 3,
    ACTIONS(799), 1,
      anon_sym_LBRACK,
    ACTIONS(801), 1,
      anon_sym_RBRACE,
    ACTIONS(803), 1,
      sym_identifier,
  [11699] = 3,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(805), 1,
      anon_sym_RBRACE,
    STATE(495), 1,
      aux_sym_table_literal_type_repeat1,
  [11709] = 3,
    ACTIONS(509), 1,
      anon_sym_RPAREN,
    ACTIONS(731), 1,
      anon_sym_COMMA,
    STATE(450), 1,
      aux_sym_function_type_repeat1,
  [11719] = 3,
    ACTIONS(509), 1,
      anon_sym_RPAREN,
    ACTIONS(543), 1,
      anon_sym_COLON,
    ACTIONS(807), 1,
      anon_sym_QMARK,
  [11729] = 3,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(809), 1,
      anon_sym_RBRACE,
    STATE(495), 1,
      aux_sym_table_literal_type_repeat1,
  [11739] = 3,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(811), 1,
      anon_sym_RBRACE,
    STATE(495), 1,
      aux_sym_table_literal_type_repeat1,
  [11749] = 3,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(813), 1,
      anon_sym_RBRACE,
    STATE(495), 1,
      aux_sym_table_literal_type_repeat1,
  [11759] = 3,
    ACTIONS(543), 1,
      anon_sym_COLON,
    ACTIONS(583), 1,
      anon_sym_RPAREN,
    ACTIONS(815), 1,
      anon_sym_QMARK,
  [11769] = 3,
    ACTIONS(817), 1,
      anon_sym_LBRACK,
    ACTIONS(819), 1,
      anon_sym_RBRACE,
    ACTIONS(821), 1,
      sym_identifier,
  [11779] = 3,
    ACTIONS(583), 1,
      anon_sym_RPAREN,
    ACTIONS(731), 1,
      anon_sym_COMMA,
    STATE(468), 1,
      aux_sym_function_type_repeat1,
  [11789] = 3,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(823), 1,
      anon_sym_RBRACE,
    STATE(495), 1,
      aux_sym_table_literal_type_repeat1,
  [11799] = 3,
    ACTIONS(825), 1,
      ts_builtin_sym_end,
    ACTIONS(827), 1,
      anon_sym_COLON,
    ACTIONS(829), 1,
      sym_comment,
  [11809] = 3,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(831), 1,
      anon_sym_RBRACE,
    STATE(495), 1,
      aux_sym_table_literal_type_repeat1,
  [11819] = 3,
    ACTIONS(505), 1,
      anon_sym_COMMA,
    ACTIONS(833), 1,
      anon_sym_RPAREN,
    STATE(444), 1,
      aux_sym_function_type_repeat2,
  [11829] = 3,
    ACTIONS(731), 1,
      anon_sym_COMMA,
    ACTIONS(833), 1,
      anon_sym_RPAREN,
    STATE(435), 1,
      aux_sym_function_type_repeat1,
  [11839] = 3,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(835), 1,
      anon_sym_RBRACE,
    STATE(495), 1,
      aux_sym_table_literal_type_repeat1,
  [11849] = 3,
    ACTIONS(543), 1,
      anon_sym_COLON,
    ACTIONS(547), 1,
      anon_sym_RPAREN,
    ACTIONS(837), 1,
      anon_sym_QMARK,
  [11859] = 3,
    ACTIONS(839), 1,
      anon_sym_fun,
    ACTIONS(841), 1,
      anon_sym_function,
    STATE(508), 1,
      sym_function_type,
  [11869] = 3,
    ACTIONS(843), 1,
      anon_sym_LBRACK,
    ACTIONS(845), 1,
      anon_sym_RBRACE,
    ACTIONS(847), 1,
      sym_identifier,
  [11879] = 3,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(849), 1,
      anon_sym_RBRACE,
    STATE(495), 1,
      aux_sym_table_literal_type_repeat1,
  [11889] = 3,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(851), 1,
      anon_sym_RBRACE,
    STATE(495), 1,
      aux_sym_table_literal_type_repeat1,
  [11899] = 3,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(853), 1,
      anon_sym_RBRACE,
    STATE(495), 1,
      aux_sym_table_literal_type_repeat1,
  [11909] = 3,
    ACTIONS(731), 1,
      anon_sym_COMMA,
    ACTIONS(855), 1,
      anon_sym_RPAREN,
    STATE(435), 1,
      aux_sym_function_type_repeat1,
  [11919] = 3,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(857), 1,
      anon_sym_RBRACE,
    STATE(495), 1,
      aux_sym_table_literal_type_repeat1,
  [11929] = 3,
    ACTIONS(859), 1,
      anon_sym_LBRACK,
    ACTIONS(861), 1,
      anon_sym_RBRACE,
    ACTIONS(863), 1,
      sym_identifier,
  [11939] = 3,
    ACTIONS(264), 1,
      ts_builtin_sym_end,
    ACTIONS(266), 1,
      sym_comment,
    ACTIONS(865), 1,
      anon_sym_COLON,
  [11949] = 3,
    ACTIONS(867), 1,
      ts_builtin_sym_end,
    ACTIONS(869), 1,
      anon_sym_COMMA,
    STATE(480), 1,
      aux_sym_diagnostic_annotation_repeat1,
  [11959] = 3,
    ACTIONS(619), 1,
      anon_sym_LBRACK,
    ACTIONS(872), 1,
      sym_identifier,
    STATE(18), 1,
      sym_positional_field,
  [11969] = 3,
    ACTIONS(874), 1,
      ts_builtin_sym_end,
    ACTIONS(876), 1,
      anon_sym_extends,
    ACTIONS(878), 1,
      sym_comment,
  [11979] = 3,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(880), 1,
      anon_sym_RBRACE,
    STATE(495), 1,
      aux_sym_table_literal_type_repeat1,
  [11989] = 3,
    ACTIONS(505), 1,
      anon_sym_COMMA,
    ACTIONS(855), 1,
      anon_sym_RPAREN,
    STATE(444), 1,
      aux_sym_function_type_repeat2,
  [11999] = 3,
    ACTIONS(731), 1,
      anon_sym_COMMA,
    ACTIONS(882), 1,
      anon_sym_RPAREN,
    STATE(435), 1,
      aux_sym_function_type_repeat1,
  [12009] = 3,
    ACTIONS(505), 1,
      anon_sym_COMMA,
    ACTIONS(882), 1,
      anon_sym_RPAREN,
    STATE(444), 1,
      aux_sym_function_type_repeat2,
  [12019] = 3,
    ACTIONS(507), 1,
      anon_sym_RPAREN,
    ACTIONS(543), 1,
      anon_sym_COLON,
    ACTIONS(884), 1,
      anon_sym_QMARK,
  [12029] = 3,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(886), 1,
      anon_sym_RBRACE,
    STATE(495), 1,
      aux_sym_table_literal_type_repeat1,
  [12039] = 3,
    ACTIONS(507), 1,
      anon_sym_RPAREN,
    ACTIONS(731), 1,
      anon_sym_COMMA,
    STATE(494), 1,
      aux_sym_function_type_repeat1,
  [12049] = 3,
    ACTIONS(553), 1,
      anon_sym_RPAREN,
    ACTIONS(731), 1,
      anon_sym_COMMA,
    STATE(485), 1,
      aux_sym_function_type_repeat1,
  [12059] = 3,
    ACTIONS(543), 1,
      anon_sym_COLON,
    ACTIONS(553), 1,
      anon_sym_RPAREN,
    ACTIONS(888), 1,
      anon_sym_QMARK,
  [12069] = 3,
    ACTIONS(890), 1,
      anon_sym_LBRACK,
    ACTIONS(892), 1,
      anon_sym_RBRACE,
    ACTIONS(894), 1,
      sym_identifier,
  [12079] = 3,
    ACTIONS(505), 1,
      anon_sym_COMMA,
    ACTIONS(896), 1,
      anon_sym_RPAREN,
    STATE(444), 1,
      aux_sym_function_type_repeat2,
  [12089] = 3,
    ACTIONS(731), 1,
      anon_sym_COMMA,
    ACTIONS(896), 1,
      anon_sym_RPAREN,
    STATE(435), 1,
      aux_sym_function_type_repeat1,
  [12099] = 3,
    ACTIONS(898), 1,
      anon_sym_COMMA,
    ACTIONS(901), 1,
      anon_sym_RBRACE,
    STATE(495), 1,
      aux_sym_table_literal_type_repeat1,
  [12109] = 3,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(903), 1,
      anon_sym_RBRACE,
    STATE(495), 1,
      aux_sym_table_literal_type_repeat1,
  [12119] = 3,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(905), 1,
      anon_sym_RBRACE,
    STATE(495), 1,
      aux_sym_table_literal_type_repeat1,
  [12129] = 3,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(907), 1,
      anon_sym_RBRACE,
    STATE(495), 1,
      aux_sym_table_literal_type_repeat1,
  [12139] = 3,
    ACTIONS(797), 1,
      anon_sym_COMMA,
    ACTIONS(909), 1,
      ts_builtin_sym_end,
    STATE(453), 1,
      aux_sym_diagnostic_annotation_repeat1,
  [12149] = 3,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(911), 1,
      anon_sym_RBRACE,
    STATE(495), 1,
      aux_sym_table_literal_type_repeat1,
  [12159] = 3,
    ACTIONS(913), 1,
      ts_builtin_sym_end,
    ACTIONS(915), 1,
      anon_sym_COLON,
    ACTIONS(917), 1,
      sym_comment,
  [12169] = 3,
    ACTIONS(511), 1,
      anon_sym_COMMA,
    ACTIONS(919), 1,
      anon_sym_RBRACE,
    STATE(495), 1,
      aux_sym_table_literal_type_repeat1,
  [12179] = 3,
    ACTIONS(913), 1,
      ts_builtin_sym_end,
    ACTIONS(917), 1,
      sym_comment,
    ACTIONS(921), 1,
      anon_sym_COMMA,
  [12189] = 2,
    ACTIONS(923), 1,
      ts_builtin_sym_end,
    ACTIONS(925), 1,
      sym_comment,
  [12196] = 2,
    ACTIONS(543), 1,
      anon_sym_COLON,
    ACTIONS(573), 1,
      anon_sym_RPAREN,
  [12203] = 2,
    ACTIONS(927), 1,
      anon_sym_COLON,
    ACTIONS(929), 1,
      anon_sym_QMARK,
  [12210] = 2,
    ACTIONS(931), 1,
      anon_sym_COLON,
    ACTIONS(933), 1,
      anon_sym_LPAREN,
  [12217] = 2,
    ACTIONS(935), 1,
      ts_builtin_sym_end,
    ACTIONS(937), 1,
      sym_comment,
  [12224] = 2,
    ACTIONS(939), 1,
      ts_builtin_sym_end,
    ACTIONS(941), 1,
      sym_comment,
  [12231] = 2,
    ACTIONS(943), 1,
      ts_builtin_sym_end,
    ACTIONS(945), 1,
      sym_comment,
  [12238] = 2,
    ACTIONS(543), 1,
      anon_sym_COLON,
    ACTIONS(583), 1,
      anon_sym_RPAREN,
  [12245] = 2,
    ACTIONS(543), 1,
      anon_sym_COLON,
    ACTIONS(553), 1,
      anon_sym_RPAREN,
  [12252] = 2,
    ACTIONS(947), 1,
      ts_builtin_sym_end,
    ACTIONS(949), 1,
      sym_comment,
  [12259] = 2,
    ACTIONS(951), 1,
      anon_sym_COLON,
    ACTIONS(953), 1,
      anon_sym_QMARK,
  [12266] = 2,
    ACTIONS(955), 1,
      anon_sym_COLON,
    ACTIONS(957), 1,
      anon_sym_QMARK,
  [12273] = 2,
    ACTIONS(959), 1,
      anon_sym_COLON,
    ACTIONS(961), 1,
      anon_sym_QMARK,
  [12280] = 2,
    ACTIONS(855), 1,
      anon_sym_RPAREN,
    ACTIONS(963), 1,
      anon_sym_COLON,
  [12287] = 2,
    ACTIONS(882), 1,
      anon_sym_RPAREN,
    ACTIONS(963), 1,
      anon_sym_COLON,
  [12294] = 2,
    ACTIONS(507), 1,
      anon_sym_RPAREN,
    ACTIONS(543), 1,
      anon_sym_COLON,
  [12301] = 2,
    ACTIONS(965), 1,
      ts_builtin_sym_end,
    ACTIONS(967), 1,
      sym_comment,
  [12308] = 2,
    ACTIONS(969), 1,
      ts_builtin_sym_end,
    ACTIONS(971), 1,
      sym_comment,
  [12315] = 2,
    ACTIONS(973), 1,
      ts_builtin_sym_end,
    ACTIONS(975), 1,
      anon_sym_COLON,
  [12322] = 2,
    ACTIONS(977), 1,
      ts_builtin_sym_end,
    ACTIONS(979), 1,
      sym_comment,
  [12329] = 2,
    ACTIONS(981), 1,
      anon_sym_COLON,
    ACTIONS(983), 1,
      anon_sym_QMARK,
  [12336] = 2,
    ACTIONS(985), 1,
      ts_builtin_sym_end,
    ACTIONS(987), 1,
      anon_sym_COLON,
  [12343] = 1,
    ACTIONS(989), 2,
      anon_sym_LBRACK,
      sym_identifier,
  [12348] = 2,
    ACTIONS(991), 1,
      ts_builtin_sym_end,
    ACTIONS(993), 1,
      sym_comment,
  [12355] = 2,
    ACTIONS(833), 1,
      anon_sym_RPAREN,
    ACTIONS(963), 1,
      anon_sym_COLON,
  [12362] = 2,
    ACTIONS(543), 1,
      anon_sym_COLON,
    ACTIONS(547), 1,
      anon_sym_RPAREN,
  [12369] = 2,
    ACTIONS(896), 1,
      anon_sym_RPAREN,
    ACTIONS(963), 1,
      anon_sym_COLON,
  [12376] = 2,
    ACTIONS(995), 1,
      ts_builtin_sym_end,
    ACTIONS(997), 1,
      anon_sym_COLON,
  [12383] = 2,
    ACTIONS(999), 1,
      anon_sym_COLON,
    ACTIONS(1001), 1,
      anon_sym_QMARK,
  [12390] = 2,
    ACTIONS(1003), 1,
      anon_sym_COLON,
    ACTIONS(1005), 1,
      anon_sym_QMARK,
  [12397] = 2,
    ACTIONS(509), 1,
      anon_sym_RPAREN,
    ACTIONS(543), 1,
      anon_sym_COLON,
  [12404] = 2,
    ACTIONS(1007), 1,
      anon_sym_COLON,
    ACTIONS(1009), 1,
      anon_sym_QMARK,
  [12411] = 2,
    ACTIONS(1011), 1,
      anon_sym_COLON,
    ACTIONS(1013), 1,
      anon_sym_QMARK,
  [12418] = 2,
    ACTIONS(1015), 1,
      ts_builtin_sym_end,
    ACTIONS(1017), 1,
      sym_comment,
  [12425] = 2,
    ACTIONS(537), 1,
      anon_sym_RPAREN,
    ACTIONS(543), 1,
      anon_sym_COLON,
  [12432] = 2,
    ACTIONS(791), 1,
      anon_sym_RPAREN,
    ACTIONS(963), 1,
      anon_sym_COLON,
  [12439] = 2,
    ACTIONS(1019), 1,
      anon_sym_COLON,
    ACTIONS(1021), 1,
      anon_sym_QMARK,
  [12446] = 2,
    ACTIONS(1023), 1,
      anon_sym_LBRACK,
    ACTIONS(1025), 1,
      sym_identifier,
  [12453] = 2,
    ACTIONS(1027), 1,
      ts_builtin_sym_end,
    ACTIONS(1029), 1,
      sym_comment,
  [12460] = 2,
    ACTIONS(776), 1,
      anon_sym_RPAREN,
    ACTIONS(963), 1,
      anon_sym_COLON,
  [12467] = 2,
    ACTIONS(1031), 1,
      anon_sym_COLON,
    ACTIONS(1033), 1,
      anon_sym_QMARK,
  [12474] = 2,
    ACTIONS(543), 1,
      anon_sym_COLON,
    ACTIONS(545), 1,
      anon_sym_QMARK,
  [12481] = 1,
    ACTIONS(768), 2,
      anon_sym_COMMA,
      anon_sym_RPAREN,
  [12486] = 2,
    ACTIONS(729), 1,
      anon_sym_RPAREN,
    ACTIONS(963), 1,
      anon_sym_COLON,
  [12493] = 2,
    ACTIONS(1035), 1,
      anon_sym_COLON,
    ACTIONS(1037), 1,
      anon_sym_QMARK,
  [12500] = 2,
    ACTIONS(1039), 1,
      anon_sym_COLON,
    ACTIONS(1041), 1,
      anon_sym_QMARK,
  [12507] = 2,
    ACTIONS(1043), 1,
      ts_builtin_sym_end,
    ACTIONS(1045), 1,
      sym_comment,
  [12514] = 2,
    ACTIONS(753), 1,
      ts_builtin_sym_end,
    ACTIONS(1047), 1,
      sym_comment,
  [12521] = 2,
    ACTIONS(763), 1,
      anon_sym_RPAREN,
    ACTIONS(963), 1,
      anon_sym_COLON,
  [12528] = 2,
    ACTIONS(1049), 1,
      anon_sym_COLON,
    ACTIONS(1051), 1,
      anon_sym_QMARK,
  [12535] = 2,
    ACTIONS(1053), 1,
      anon_sym_COLON,
    ACTIONS(1055), 1,
      anon_sym_QMARK,
  [12542] = 2,
    ACTIONS(1057), 1,
      anon_sym_COLON,
    ACTIONS(1059), 1,
      anon_sym_QMARK,
  [12549] = 1,
    ACTIONS(1061), 2,
      anon_sym_DOT_DOT_DOT,
      sym_identifier,
  [12554] = 2,
    ACTIONS(527), 1,
      anon_sym_RPAREN,
    ACTIONS(543), 1,
      anon_sym_COLON,
  [12561] = 1,
    ACTIONS(867), 2,
      ts_builtin_sym_end,
      anon_sym_COMMA,
  [12566] = 1,
    ACTIONS(1063), 1,
      sym_identifier,
  [12570] = 1,
    ACTIONS(1065), 1,
      ts_builtin_sym_end,
  [12574] = 1,
    ACTIONS(1067), 1,
      anon_sym_DQUOTE,
  [12578] = 1,
    ACTIONS(1069), 1,
      sym_identifier,
  [12582] = 1,
    ACTIONS(1071), 1,
      sym_identifier,
  [12586] = 1,
    ACTIONS(1073), 1,
      anon_sym_RBRACK,
  [12590] = 1,
    ACTIONS(1075), 1,
      ts_builtin_sym_end,
  [12594] = 1,
    ACTIONS(1077), 1,
      anon_sym_COLON,
  [12598] = 1,
    ACTIONS(1079), 1,
      ts_builtin_sym_end,
  [12602] = 1,
    ACTIONS(1081), 1,
      ts_builtin_sym_end,
  [12606] = 1,
    ACTIONS(1083), 1,
      ts_builtin_sym_end,
  [12610] = 1,
    ACTIONS(1085), 1,
      ts_builtin_sym_end,
  [12614] = 1,
    ACTIONS(1087), 1,
      sym_diagnostic_identifier,
  [12618] = 1,
    ACTIONS(1089), 1,
      ts_builtin_sym_end,
  [12622] = 1,
    ACTIONS(683), 1,
      anon_sym_RBRACK2,
  [12626] = 1,
    ACTIONS(1091), 1,
      anon_sym_RBRACK,
  [12630] = 1,
    ACTIONS(1093), 1,
      ts_builtin_sym_end,
  [12634] = 1,
    ACTIONS(1095), 1,
      anon_sym_DQUOTE,
  [12638] = 1,
    ACTIONS(1097), 1,
      sym_identifier,
  [12642] = 1,
    ACTIONS(1099), 1,
      anon_sym_LPAREN,
  [12646] = 1,
    ACTIONS(1101), 1,
      aux_sym_literal_type_token1,
  [12650] = 1,
    ACTIONS(1103), 1,
      sym_identifier,
  [12654] = 1,
    ACTIONS(1105), 1,
      anon_sym_RBRACK2,
  [12658] = 1,
    ACTIONS(1107), 1,
      ts_builtin_sym_end,
  [12662] = 1,
    ACTIONS(1109), 1,
      anon_sym_COLON,
  [12666] = 1,
    ACTIONS(667), 1,
      ts_builtin_sym_end,
  [12670] = 1,
    ACTIONS(1111), 1,
      sym_identifier,
  [12674] = 1,
    ACTIONS(1113), 1,
      anon_sym_RBRACK,
  [12678] = 1,
    ACTIONS(1115), 1,
      ts_builtin_sym_end,
  [12682] = 1,
    ACTIONS(1117), 1,
      sym_identifier,
  [12686] = 1,
    ACTIONS(1119), 1,
      sym_identifier,
  [12690] = 1,
    ACTIONS(1121), 1,
      anon_sym_LPAREN,
  [12694] = 1,
    ACTIONS(1123), 1,
      aux_sym_literal_type_token1,
  [12698] = 1,
    ACTIONS(1125), 1,
      anon_sym_DQUOTE,
  [12702] = 1,
    ACTIONS(1127), 1,
      ts_builtin_sym_end,
  [12706] = 1,
    ACTIONS(497), 1,
      ts_builtin_sym_end,
  [12710] = 1,
    ACTIONS(1129), 1,
      ts_builtin_sym_end,
  [12714] = 1,
    ACTIONS(1131), 1,
      anon_sym_RBRACK,
  [12718] = 1,
    ACTIONS(1133), 1,
      sym_identifier,
  [12722] = 1,
    ACTIONS(1135), 1,
      ts_builtin_sym_end,
  [12726] = 1,
    ACTIONS(340), 1,
      anon_sym_LPAREN,
  [12730] = 1,
    ACTIONS(1137), 1,
      aux_sym_literal_type_token1,
  [12734] = 1,
    ACTIONS(1139), 1,
      ts_builtin_sym_end,
  [12738] = 1,
    ACTIONS(1141), 1,
      sym_comment,
  [12742] = 1,
    ACTIONS(1143), 1,
      ts_builtin_sym_end,
  [12746] = 1,
    ACTIONS(1145), 1,
      anon_sym_DQUOTE,
  [12750] = 1,
    ACTIONS(1147), 1,
      ts_builtin_sym_end,
  [12754] = 1,
    ACTIONS(1149), 1,
      ts_builtin_sym_end,
  [12758] = 1,
    ACTIONS(1151), 1,
      anon_sym_DOT,
  [12762] = 1,
    ACTIONS(1153), 1,
      anon_sym_LPAREN,
  [12766] = 1,
    ACTIONS(1155), 1,
      aux_sym_literal_type_token1,
  [12770] = 1,
    ACTIONS(1157), 1,
      ts_builtin_sym_end,
  [12774] = 1,
    ACTIONS(1159), 1,
      ts_builtin_sym_end,
  [12778] = 1,
    ACTIONS(963), 1,
      anon_sym_COLON,
  [12782] = 1,
    ACTIONS(1161), 1,
      anon_sym_RBRACK,
  [12786] = 1,
    ACTIONS(1163), 1,
      sym_identifier,
  [12790] = 1,
    ACTIONS(1165), 1,
      sym_number,
  [12794] = 1,
    ACTIONS(1167), 1,
      anon_sym_DQUOTE,
  [12798] = 1,
    ACTIONS(1169), 1,
      anon_sym_LPAREN,
  [12802] = 1,
    ACTIONS(1171), 1,
      aux_sym_literal_type_token1,
  [12806] = 1,
    ACTIONS(1173), 1,
      aux_sym_literal_type_token1,
  [12810] = 1,
    ACTIONS(1175), 1,
      anon_sym_LPAREN,
  [12814] = 1,
    ACTIONS(1177), 1,
      ts_builtin_sym_end,
  [12818] = 1,
    ACTIONS(1179), 1,
      ts_builtin_sym_end,
  [12822] = 1,
    ACTIONS(1181), 1,
      ts_builtin_sym_end,
  [12826] = 1,
    ACTIONS(1183), 1,
      sym_identifier,
  [12830] = 1,
    ACTIONS(1185), 1,
      sym_identifier,
  [12834] = 1,
    ACTIONS(1187), 1,
      anon_sym_LPAREN,
  [12838] = 1,
    ACTIONS(1189), 1,
      aux_sym_literal_type_token1,
  [12842] = 1,
    ACTIONS(1191), 1,
      sym_identifier,
  [12846] = 1,
    ACTIONS(1193), 1,
      ts_builtin_sym_end,
  [12850] = 1,
    ACTIONS(1195), 1,
      ts_builtin_sym_end,
  [12854] = 1,
    ACTIONS(1197), 1,
      ts_builtin_sym_end,
  [12858] = 1,
    ACTIONS(1199), 1,
      sym_identifier,
  [12862] = 1,
    ACTIONS(481), 1,
      ts_builtin_sym_end,
  [12866] = 1,
    ACTIONS(1201), 1,
      sym_identifier,
  [12870] = 1,
    ACTIONS(1203), 1,
      ts_builtin_sym_end,
  [12874] = 1,
    ACTIONS(1205), 1,
      anon_sym_COLON,
  [12878] = 1,
    ACTIONS(1207), 1,
      sym_identifier,
  [12882] = 1,
    ACTIONS(1209), 1,
      anon_sym_RBRACK,
  [12886] = 1,
    ACTIONS(1211), 1,
      sym_identifier,
  [12890] = 1,
    ACTIONS(1213), 1,
      sym_identifier,
  [12894] = 1,
    ACTIONS(1215), 1,
      anon_sym_DQUOTE,
  [12898] = 1,
    ACTIONS(1217), 1,
      sym_diagnostic_identifier,
  [12902] = 1,
    ACTIONS(1219), 1,
      sym_number,
  [12906] = 1,
    ACTIONS(1221), 1,
      ts_builtin_sym_end,
  [12910] = 1,
    ACTIONS(1223), 1,
      anon_sym_COLON,
  [12914] = 1,
    ACTIONS(1225), 1,
      anon_sym_COLON,
  [12918] = 1,
    ACTIONS(1227), 1,
      anon_sym_COLON,
  [12922] = 1,
    ACTIONS(1229), 1,
      anon_sym_COLON,
  [12926] = 1,
    ACTIONS(1231), 1,
      anon_sym_COLON,
  [12930] = 1,
    ACTIONS(543), 1,
      anon_sym_COLON,
  [12934] = 1,
    ACTIONS(1233), 1,
      anon_sym_COLON,
  [12938] = 1,
    ACTIONS(501), 1,
      ts_builtin_sym_end,
  [12942] = 1,
    ACTIONS(1235), 1,
      anon_sym_COLON,
  [12946] = 1,
    ACTIONS(1237), 1,
      ts_builtin_sym_end,
  [12950] = 1,
    ACTIONS(1239), 1,
      anon_sym_COLON,
  [12954] = 1,
    ACTIONS(1241), 1,
      anon_sym_RBRACK,
  [12958] = 1,
    ACTIONS(1243), 1,
      anon_sym_COLON,
  [12962] = 1,
    ACTIONS(1245), 1,
      sym_identifier,
  [12966] = 1,
    ACTIONS(1247), 1,
      anon_sym_COLON,
  [12970] = 1,
    ACTIONS(1249), 1,
      anon_sym_DQUOTE,
  [12974] = 1,
    ACTIONS(1251), 1,
      anon_sym_COLON,
  [12978] = 1,
    ACTIONS(1253), 1,
      ts_builtin_sym_end,
  [12982] = 1,
    ACTIONS(1255), 1,
      anon_sym_COLON,
  [12986] = 1,
    ACTIONS(1257), 1,
      sym_identifier,
  [12990] = 1,
    ACTIONS(1259), 1,
      anon_sym_COLON,
  [12994] = 1,
    ACTIONS(1261), 1,
      anon_sym_LPAREN,
  [12998] = 1,
    ACTIONS(707), 1,
      anon_sym_RBRACK2,
  [13002] = 1,
    ACTIONS(1263), 1,
      ts_builtin_sym_end,
  [13006] = 1,
    ACTIONS(703), 1,
      anon_sym_RBRACK2,
  [13010] = 1,
    ACTIONS(1265), 1,
      sym_number,
  [13014] = 1,
    ACTIONS(699), 1,
      anon_sym_RBRACK2,
  [13018] = 1,
    ACTIONS(701), 1,
      anon_sym_RBRACK2,
  [13022] = 1,
    ACTIONS(695), 1,
      anon_sym_RBRACK2,
  [13026] = 1,
    ACTIONS(1267), 1,
      anon_sym_COLON,
  [13030] = 1,
    ACTIONS(693), 1,
      anon_sym_RBRACK2,
  [13034] = 1,
    ACTIONS(1269), 1,
      ts_builtin_sym_end,
  [13038] = 1,
    ACTIONS(687), 1,
      anon_sym_RBRACK2,
  [13042] = 1,
    ACTIONS(1271), 1,
      ts_builtin_sym_end,
  [13046] = 1,
    ACTIONS(1273), 1,
      sym_string,
  [13050] = 1,
    ACTIONS(1275), 1,
      ts_builtin_sym_end,
  [13054] = 1,
    ACTIONS(1277), 1,
      sym_diagnostic_identifier,
  [13058] = 1,
    ACTIONS(1279), 1,
      sym_identifier,
  [13062] = 1,
    ACTIONS(1281), 1,
      ts_builtin_sym_end,
  [13066] = 1,
    ACTIONS(1283), 1,
      sym_identifier,
};

static const uint32_t ts_small_parse_table_map[] = {
  [SMALL_STATE(2)] = 0,
  [SMALL_STATE(3)] = 60,
  [SMALL_STATE(4)] = 119,
  [SMALL_STATE(5)] = 178,
  [SMALL_STATE(6)] = 237,
  [SMALL_STATE(7)] = 296,
  [SMALL_STATE(8)] = 355,
  [SMALL_STATE(9)] = 414,
  [SMALL_STATE(10)] = 473,
  [SMALL_STATE(11)] = 532,
  [SMALL_STATE(12)] = 582,
  [SMALL_STATE(13)] = 632,
  [SMALL_STATE(14)] = 682,
  [SMALL_STATE(15)] = 732,
  [SMALL_STATE(16)] = 782,
  [SMALL_STATE(17)] = 832,
  [SMALL_STATE(18)] = 882,
  [SMALL_STATE(19)] = 932,
  [SMALL_STATE(20)] = 982,
  [SMALL_STATE(21)] = 1032,
  [SMALL_STATE(22)] = 1082,
  [SMALL_STATE(23)] = 1129,
  [SMALL_STATE(24)] = 1176,
  [SMALL_STATE(25)] = 1223,
  [SMALL_STATE(26)] = 1270,
  [SMALL_STATE(27)] = 1317,
  [SMALL_STATE(28)] = 1364,
  [SMALL_STATE(29)] = 1411,
  [SMALL_STATE(30)] = 1458,
  [SMALL_STATE(31)] = 1505,
  [SMALL_STATE(32)] = 1552,
  [SMALL_STATE(33)] = 1599,
  [SMALL_STATE(34)] = 1646,
  [SMALL_STATE(35)] = 1693,
  [SMALL_STATE(36)] = 1740,
  [SMALL_STATE(37)] = 1787,
  [SMALL_STATE(38)] = 1834,
  [SMALL_STATE(39)] = 1881,
  [SMALL_STATE(40)] = 1928,
  [SMALL_STATE(41)] = 1975,
  [SMALL_STATE(42)] = 2022,
  [SMALL_STATE(43)] = 2069,
  [SMALL_STATE(44)] = 2104,
  [SMALL_STATE(45)] = 2151,
  [SMALL_STATE(46)] = 2198,
  [SMALL_STATE(47)] = 2245,
  [SMALL_STATE(48)] = 2292,
  [SMALL_STATE(49)] = 2339,
  [SMALL_STATE(50)] = 2386,
  [SMALL_STATE(51)] = 2433,
  [SMALL_STATE(52)] = 2480,
  [SMALL_STATE(53)] = 2527,
  [SMALL_STATE(54)] = 2574,
  [SMALL_STATE(55)] = 2621,
  [SMALL_STATE(56)] = 2668,
  [SMALL_STATE(57)] = 2715,
  [SMALL_STATE(58)] = 2762,
  [SMALL_STATE(59)] = 2809,
  [SMALL_STATE(60)] = 2856,
  [SMALL_STATE(61)] = 2903,
  [SMALL_STATE(62)] = 2950,
  [SMALL_STATE(63)] = 2997,
  [SMALL_STATE(64)] = 3044,
  [SMALL_STATE(65)] = 3091,
  [SMALL_STATE(66)] = 3138,
  [SMALL_STATE(67)] = 3185,
  [SMALL_STATE(68)] = 3232,
  [SMALL_STATE(69)] = 3279,
  [SMALL_STATE(70)] = 3326,
  [SMALL_STATE(71)] = 3373,
  [SMALL_STATE(72)] = 3420,
  [SMALL_STATE(73)] = 3467,
  [SMALL_STATE(74)] = 3514,
  [SMALL_STATE(75)] = 3561,
  [SMALL_STATE(76)] = 3608,
  [SMALL_STATE(77)] = 3655,
  [SMALL_STATE(78)] = 3702,
  [SMALL_STATE(79)] = 3749,
  [SMALL_STATE(80)] = 3796,
  [SMALL_STATE(81)] = 3843,
  [SMALL_STATE(82)] = 3890,
  [SMALL_STATE(83)] = 3923,
  [SMALL_STATE(84)] = 3970,
  [SMALL_STATE(85)] = 4017,
  [SMALL_STATE(86)] = 4064,
  [SMALL_STATE(87)] = 4111,
  [SMALL_STATE(88)] = 4158,
  [SMALL_STATE(89)] = 4205,
  [SMALL_STATE(90)] = 4238,
  [SMALL_STATE(91)] = 4285,
  [SMALL_STATE(92)] = 4332,
  [SMALL_STATE(93)] = 4379,
  [SMALL_STATE(94)] = 4422,
  [SMALL_STATE(95)] = 4455,
  [SMALL_STATE(96)] = 4498,
  [SMALL_STATE(97)] = 4545,
  [SMALL_STATE(98)] = 4592,
  [SMALL_STATE(99)] = 4639,
  [SMALL_STATE(100)] = 4686,
  [SMALL_STATE(101)] = 4733,
  [SMALL_STATE(102)] = 4768,
  [SMALL_STATE(103)] = 4815,
  [SMALL_STATE(104)] = 4862,
  [SMALL_STATE(105)] = 4897,
  [SMALL_STATE(106)] = 4940,
  [SMALL_STATE(107)] = 4987,
  [SMALL_STATE(108)] = 5034,
  [SMALL_STATE(109)] = 5081,
  [SMALL_STATE(110)] = 5128,
  [SMALL_STATE(111)] = 5175,
  [SMALL_STATE(112)] = 5222,
  [SMALL_STATE(113)] = 5257,
  [SMALL_STATE(114)] = 5290,
  [SMALL_STATE(115)] = 5337,
  [SMALL_STATE(116)] = 5384,
  [SMALL_STATE(117)] = 5431,
  [SMALL_STATE(118)] = 5478,
  [SMALL_STATE(119)] = 5525,
  [SMALL_STATE(120)] = 5572,
  [SMALL_STATE(121)] = 5619,
  [SMALL_STATE(122)] = 5666,
  [SMALL_STATE(123)] = 5713,
  [SMALL_STATE(124)] = 5760,
  [SMALL_STATE(125)] = 5807,
  [SMALL_STATE(126)] = 5854,
  [SMALL_STATE(127)] = 5901,
  [SMALL_STATE(128)] = 5948,
  [SMALL_STATE(129)] = 5995,
  [SMALL_STATE(130)] = 6025,
  [SMALL_STATE(131)] = 6055,
  [SMALL_STATE(132)] = 6085,
  [SMALL_STATE(133)] = 6115,
  [SMALL_STATE(134)] = 6145,
  [SMALL_STATE(135)] = 6175,
  [SMALL_STATE(136)] = 6205,
  [SMALL_STATE(137)] = 6235,
  [SMALL_STATE(138)] = 6265,
  [SMALL_STATE(139)] = 6295,
  [SMALL_STATE(140)] = 6325,
  [SMALL_STATE(141)] = 6355,
  [SMALL_STATE(142)] = 6385,
  [SMALL_STATE(143)] = 6415,
  [SMALL_STATE(144)] = 6447,
  [SMALL_STATE(145)] = 6485,
  [SMALL_STATE(146)] = 6515,
  [SMALL_STATE(147)] = 6553,
  [SMALL_STATE(148)] = 6583,
  [SMALL_STATE(149)] = 6613,
  [SMALL_STATE(150)] = 6643,
  [SMALL_STATE(151)] = 6664,
  [SMALL_STATE(152)] = 6684,
  [SMALL_STATE(153)] = 6702,
  [SMALL_STATE(154)] = 6720,
  [SMALL_STATE(155)] = 6748,
  [SMALL_STATE(156)] = 6768,
  [SMALL_STATE(157)] = 6796,
  [SMALL_STATE(158)] = 6816,
  [SMALL_STATE(159)] = 6844,
  [SMALL_STATE(160)] = 6876,
  [SMALL_STATE(161)] = 6896,
  [SMALL_STATE(162)] = 6911,
  [SMALL_STATE(163)] = 6926,
  [SMALL_STATE(164)] = 6941,
  [SMALL_STATE(165)] = 6960,
  [SMALL_STATE(166)] = 6987,
  [SMALL_STATE(167)] = 7004,
  [SMALL_STATE(168)] = 7031,
  [SMALL_STATE(169)] = 7048,
  [SMALL_STATE(170)] = 7065,
  [SMALL_STATE(171)] = 7080,
  [SMALL_STATE(172)] = 7097,
  [SMALL_STATE(173)] = 7114,
  [SMALL_STATE(174)] = 7129,
  [SMALL_STATE(175)] = 7146,
  [SMALL_STATE(176)] = 7163,
  [SMALL_STATE(177)] = 7182,
  [SMALL_STATE(178)] = 7205,
  [SMALL_STATE(179)] = 7222,
  [SMALL_STATE(180)] = 7239,
  [SMALL_STATE(181)] = 7256,
  [SMALL_STATE(182)] = 7283,
  [SMALL_STATE(183)] = 7312,
  [SMALL_STATE(184)] = 7327,
  [SMALL_STATE(185)] = 7346,
  [SMALL_STATE(186)] = 7361,
  [SMALL_STATE(187)] = 7376,
  [SMALL_STATE(188)] = 7391,
  [SMALL_STATE(189)] = 7406,
  [SMALL_STATE(190)] = 7421,
  [SMALL_STATE(191)] = 7440,
  [SMALL_STATE(192)] = 7455,
  [SMALL_STATE(193)] = 7470,
  [SMALL_STATE(194)] = 7485,
  [SMALL_STATE(195)] = 7500,
  [SMALL_STATE(196)] = 7515,
  [SMALL_STATE(197)] = 7530,
  [SMALL_STATE(198)] = 7545,
  [SMALL_STATE(199)] = 7568,
  [SMALL_STATE(200)] = 7582,
  [SMALL_STATE(201)] = 7608,
  [SMALL_STATE(202)] = 7624,
  [SMALL_STATE(203)] = 7638,
  [SMALL_STATE(204)] = 7652,
  [SMALL_STATE(205)] = 7668,
  [SMALL_STATE(206)] = 7682,
  [SMALL_STATE(207)] = 7698,
  [SMALL_STATE(208)] = 7712,
  [SMALL_STATE(209)] = 7738,
  [SMALL_STATE(210)] = 7756,
  [SMALL_STATE(211)] = 7782,
  [SMALL_STATE(212)] = 7808,
  [SMALL_STATE(213)] = 7824,
  [SMALL_STATE(214)] = 7842,
  [SMALL_STATE(215)] = 7858,
  [SMALL_STATE(216)] = 7884,
  [SMALL_STATE(217)] = 7902,
  [SMALL_STATE(218)] = 7920,
  [SMALL_STATE(219)] = 7946,
  [SMALL_STATE(220)] = 7962,
  [SMALL_STATE(221)] = 7988,
  [SMALL_STATE(222)] = 8002,
  [SMALL_STATE(223)] = 8018,
  [SMALL_STATE(224)] = 8032,
  [SMALL_STATE(225)] = 8058,
  [SMALL_STATE(226)] = 8072,
  [SMALL_STATE(227)] = 8088,
  [SMALL_STATE(228)] = 8102,
  [SMALL_STATE(229)] = 8116,
  [SMALL_STATE(230)] = 8132,
  [SMALL_STATE(231)] = 8148,
  [SMALL_STATE(232)] = 8162,
  [SMALL_STATE(233)] = 8176,
  [SMALL_STATE(234)] = 8202,
  [SMALL_STATE(235)] = 8218,
  [SMALL_STATE(236)] = 8232,
  [SMALL_STATE(237)] = 8246,
  [SMALL_STATE(238)] = 8262,
  [SMALL_STATE(239)] = 8276,
  [SMALL_STATE(240)] = 8290,
  [SMALL_STATE(241)] = 8304,
  [SMALL_STATE(242)] = 8318,
  [SMALL_STATE(243)] = 8334,
  [SMALL_STATE(244)] = 8356,
  [SMALL_STATE(245)] = 8370,
  [SMALL_STATE(246)] = 8384,
  [SMALL_STATE(247)] = 8398,
  [SMALL_STATE(248)] = 8412,
  [SMALL_STATE(249)] = 8426,
  [SMALL_STATE(250)] = 8440,
  [SMALL_STATE(251)] = 8462,
  [SMALL_STATE(252)] = 8476,
  [SMALL_STATE(253)] = 8490,
  [SMALL_STATE(254)] = 8504,
  [SMALL_STATE(255)] = 8526,
  [SMALL_STATE(256)] = 8552,
  [SMALL_STATE(257)] = 8578,
  [SMALL_STATE(258)] = 8592,
  [SMALL_STATE(259)] = 8606,
  [SMALL_STATE(260)] = 8620,
  [SMALL_STATE(261)] = 8634,
  [SMALL_STATE(262)] = 8660,
  [SMALL_STATE(263)] = 8674,
  [SMALL_STATE(264)] = 8688,
  [SMALL_STATE(265)] = 8702,
  [SMALL_STATE(266)] = 8728,
  [SMALL_STATE(267)] = 8754,
  [SMALL_STATE(268)] = 8768,
  [SMALL_STATE(269)] = 8782,
  [SMALL_STATE(270)] = 8795,
  [SMALL_STATE(271)] = 8818,
  [SMALL_STATE(272)] = 8841,
  [SMALL_STATE(273)] = 8864,
  [SMALL_STATE(274)] = 8887,
  [SMALL_STATE(275)] = 8900,
  [SMALL_STATE(276)] = 8923,
  [SMALL_STATE(277)] = 8936,
  [SMALL_STATE(278)] = 8949,
  [SMALL_STATE(279)] = 8962,
  [SMALL_STATE(280)] = 8975,
  [SMALL_STATE(281)] = 8988,
  [SMALL_STATE(282)] = 9001,
  [SMALL_STATE(283)] = 9014,
  [SMALL_STATE(284)] = 9029,
  [SMALL_STATE(285)] = 9042,
  [SMALL_STATE(286)] = 9055,
  [SMALL_STATE(287)] = 9068,
  [SMALL_STATE(288)] = 9089,
  [SMALL_STATE(289)] = 9110,
  [SMALL_STATE(290)] = 9123,
  [SMALL_STATE(291)] = 9136,
  [SMALL_STATE(292)] = 9151,
  [SMALL_STATE(293)] = 9164,
  [SMALL_STATE(294)] = 9177,
  [SMALL_STATE(295)] = 9192,
  [SMALL_STATE(296)] = 9205,
  [SMALL_STATE(297)] = 9218,
  [SMALL_STATE(298)] = 9231,
  [SMALL_STATE(299)] = 9244,
  [SMALL_STATE(300)] = 9257,
  [SMALL_STATE(301)] = 9270,
  [SMALL_STATE(302)] = 9283,
  [SMALL_STATE(303)] = 9296,
  [SMALL_STATE(304)] = 9319,
  [SMALL_STATE(305)] = 9332,
  [SMALL_STATE(306)] = 9345,
  [SMALL_STATE(307)] = 9366,
  [SMALL_STATE(308)] = 9379,
  [SMALL_STATE(309)] = 9394,
  [SMALL_STATE(310)] = 9409,
  [SMALL_STATE(311)] = 9432,
  [SMALL_STATE(312)] = 9455,
  [SMALL_STATE(313)] = 9478,
  [SMALL_STATE(314)] = 9501,
  [SMALL_STATE(315)] = 9524,
  [SMALL_STATE(316)] = 9547,
  [SMALL_STATE(317)] = 9560,
  [SMALL_STATE(318)] = 9583,
  [SMALL_STATE(319)] = 9606,
  [SMALL_STATE(320)] = 9629,
  [SMALL_STATE(321)] = 9644,
  [SMALL_STATE(322)] = 9657,
  [SMALL_STATE(323)] = 9670,
  [SMALL_STATE(324)] = 9693,
  [SMALL_STATE(325)] = 9706,
  [SMALL_STATE(326)] = 9729,
  [SMALL_STATE(327)] = 9752,
  [SMALL_STATE(328)] = 9765,
  [SMALL_STATE(329)] = 9788,
  [SMALL_STATE(330)] = 9811,
  [SMALL_STATE(331)] = 9834,
  [SMALL_STATE(332)] = 9847,
  [SMALL_STATE(333)] = 9860,
  [SMALL_STATE(334)] = 9883,
  [SMALL_STATE(335)] = 9906,
  [SMALL_STATE(336)] = 9929,
  [SMALL_STATE(337)] = 9942,
  [SMALL_STATE(338)] = 9965,
  [SMALL_STATE(339)] = 9988,
  [SMALL_STATE(340)] = 10001,
  [SMALL_STATE(341)] = 10024,
  [SMALL_STATE(342)] = 10047,
  [SMALL_STATE(343)] = 10070,
  [SMALL_STATE(344)] = 10093,
  [SMALL_STATE(345)] = 10116,
  [SMALL_STATE(346)] = 10139,
  [SMALL_STATE(347)] = 10162,
  [SMALL_STATE(348)] = 10185,
  [SMALL_STATE(349)] = 10208,
  [SMALL_STATE(350)] = 10231,
  [SMALL_STATE(351)] = 10251,
  [SMALL_STATE(352)] = 10269,
  [SMALL_STATE(353)] = 10287,
  [SMALL_STATE(354)] = 10307,
  [SMALL_STATE(355)] = 10319,
  [SMALL_STATE(356)] = 10331,
  [SMALL_STATE(357)] = 10351,
  [SMALL_STATE(358)] = 10363,
  [SMALL_STATE(359)] = 10375,
  [SMALL_STATE(360)] = 10387,
  [SMALL_STATE(361)] = 10407,
  [SMALL_STATE(362)] = 10419,
  [SMALL_STATE(363)] = 10437,
  [SMALL_STATE(364)] = 10449,
  [SMALL_STATE(365)] = 10469,
  [SMALL_STATE(366)] = 10481,
  [SMALL_STATE(367)] = 10499,
  [SMALL_STATE(368)] = 10511,
  [SMALL_STATE(369)] = 10523,
  [SMALL_STATE(370)] = 10543,
  [SMALL_STATE(371)] = 10555,
  [SMALL_STATE(372)] = 10567,
  [SMALL_STATE(373)] = 10587,
  [SMALL_STATE(374)] = 10607,
  [SMALL_STATE(375)] = 10619,
  [SMALL_STATE(376)] = 10631,
  [SMALL_STATE(377)] = 10651,
  [SMALL_STATE(378)] = 10663,
  [SMALL_STATE(379)] = 10683,
  [SMALL_STATE(380)] = 10695,
  [SMALL_STATE(381)] = 10715,
  [SMALL_STATE(382)] = 10727,
  [SMALL_STATE(383)] = 10739,
  [SMALL_STATE(384)] = 10757,
  [SMALL_STATE(385)] = 10775,
  [SMALL_STATE(386)] = 10793,
  [SMALL_STATE(387)] = 10813,
  [SMALL_STATE(388)] = 10833,
  [SMALL_STATE(389)] = 10851,
  [SMALL_STATE(390)] = 10868,
  [SMALL_STATE(391)] = 10887,
  [SMALL_STATE(392)] = 10904,
  [SMALL_STATE(393)] = 10921,
  [SMALL_STATE(394)] = 10938,
  [SMALL_STATE(395)] = 10955,
  [SMALL_STATE(396)] = 10972,
  [SMALL_STATE(397)] = 10989,
  [SMALL_STATE(398)] = 11006,
  [SMALL_STATE(399)] = 11023,
  [SMALL_STATE(400)] = 11040,
  [SMALL_STATE(401)] = 11057,
  [SMALL_STATE(402)] = 11074,
  [SMALL_STATE(403)] = 11091,
  [SMALL_STATE(404)] = 11108,
  [SMALL_STATE(405)] = 11125,
  [SMALL_STATE(406)] = 11142,
  [SMALL_STATE(407)] = 11159,
  [SMALL_STATE(408)] = 11176,
  [SMALL_STATE(409)] = 11193,
  [SMALL_STATE(410)] = 11210,
  [SMALL_STATE(411)] = 11227,
  [SMALL_STATE(412)] = 11244,
  [SMALL_STATE(413)] = 11261,
  [SMALL_STATE(414)] = 11275,
  [SMALL_STATE(415)] = 11283,
  [SMALL_STATE(416)] = 11296,
  [SMALL_STATE(417)] = 11307,
  [SMALL_STATE(418)] = 11320,
  [SMALL_STATE(419)] = 11333,
  [SMALL_STATE(420)] = 11346,
  [SMALL_STATE(421)] = 11359,
  [SMALL_STATE(422)] = 11369,
  [SMALL_STATE(423)] = 11379,
  [SMALL_STATE(424)] = 11389,
  [SMALL_STATE(425)] = 11399,
  [SMALL_STATE(426)] = 11409,
  [SMALL_STATE(427)] = 11419,
  [SMALL_STATE(428)] = 11429,
  [SMALL_STATE(429)] = 11439,
  [SMALL_STATE(430)] = 11449,
  [SMALL_STATE(431)] = 11459,
  [SMALL_STATE(432)] = 11469,
  [SMALL_STATE(433)] = 11479,
  [SMALL_STATE(434)] = 11489,
  [SMALL_STATE(435)] = 11499,
  [SMALL_STATE(436)] = 11509,
  [SMALL_STATE(437)] = 11519,
  [SMALL_STATE(438)] = 11529,
  [SMALL_STATE(439)] = 11539,
  [SMALL_STATE(440)] = 11549,
  [SMALL_STATE(441)] = 11559,
  [SMALL_STATE(442)] = 11569,
  [SMALL_STATE(443)] = 11579,
  [SMALL_STATE(444)] = 11589,
  [SMALL_STATE(445)] = 11599,
  [SMALL_STATE(446)] = 11609,
  [SMALL_STATE(447)] = 11619,
  [SMALL_STATE(448)] = 11629,
  [SMALL_STATE(449)] = 11639,
  [SMALL_STATE(450)] = 11649,
  [SMALL_STATE(451)] = 11659,
  [SMALL_STATE(452)] = 11669,
  [SMALL_STATE(453)] = 11679,
  [SMALL_STATE(454)] = 11689,
  [SMALL_STATE(455)] = 11699,
  [SMALL_STATE(456)] = 11709,
  [SMALL_STATE(457)] = 11719,
  [SMALL_STATE(458)] = 11729,
  [SMALL_STATE(459)] = 11739,
  [SMALL_STATE(460)] = 11749,
  [SMALL_STATE(461)] = 11759,
  [SMALL_STATE(462)] = 11769,
  [SMALL_STATE(463)] = 11779,
  [SMALL_STATE(464)] = 11789,
  [SMALL_STATE(465)] = 11799,
  [SMALL_STATE(466)] = 11809,
  [SMALL_STATE(467)] = 11819,
  [SMALL_STATE(468)] = 11829,
  [SMALL_STATE(469)] = 11839,
  [SMALL_STATE(470)] = 11849,
  [SMALL_STATE(471)] = 11859,
  [SMALL_STATE(472)] = 11869,
  [SMALL_STATE(473)] = 11879,
  [SMALL_STATE(474)] = 11889,
  [SMALL_STATE(475)] = 11899,
  [SMALL_STATE(476)] = 11909,
  [SMALL_STATE(477)] = 11919,
  [SMALL_STATE(478)] = 11929,
  [SMALL_STATE(479)] = 11939,
  [SMALL_STATE(480)] = 11949,
  [SMALL_STATE(481)] = 11959,
  [SMALL_STATE(482)] = 11969,
  [SMALL_STATE(483)] = 11979,
  [SMALL_STATE(484)] = 11989,
  [SMALL_STATE(485)] = 11999,
  [SMALL_STATE(486)] = 12009,
  [SMALL_STATE(487)] = 12019,
  [SMALL_STATE(488)] = 12029,
  [SMALL_STATE(489)] = 12039,
  [SMALL_STATE(490)] = 12049,
  [SMALL_STATE(491)] = 12059,
  [SMALL_STATE(492)] = 12069,
  [SMALL_STATE(493)] = 12079,
  [SMALL_STATE(494)] = 12089,
  [SMALL_STATE(495)] = 12099,
  [SMALL_STATE(496)] = 12109,
  [SMALL_STATE(497)] = 12119,
  [SMALL_STATE(498)] = 12129,
  [SMALL_STATE(499)] = 12139,
  [SMALL_STATE(500)] = 12149,
  [SMALL_STATE(501)] = 12159,
  [SMALL_STATE(502)] = 12169,
  [SMALL_STATE(503)] = 12179,
  [SMALL_STATE(504)] = 12189,
  [SMALL_STATE(505)] = 12196,
  [SMALL_STATE(506)] = 12203,
  [SMALL_STATE(507)] = 12210,
  [SMALL_STATE(508)] = 12217,
  [SMALL_STATE(509)] = 12224,
  [SMALL_STATE(510)] = 12231,
  [SMALL_STATE(511)] = 12238,
  [SMALL_STATE(512)] = 12245,
  [SMALL_STATE(513)] = 12252,
  [SMALL_STATE(514)] = 12259,
  [SMALL_STATE(515)] = 12266,
  [SMALL_STATE(516)] = 12273,
  [SMALL_STATE(517)] = 12280,
  [SMALL_STATE(518)] = 12287,
  [SMALL_STATE(519)] = 12294,
  [SMALL_STATE(520)] = 12301,
  [SMALL_STATE(521)] = 12308,
  [SMALL_STATE(522)] = 12315,
  [SMALL_STATE(523)] = 12322,
  [SMALL_STATE(524)] = 12329,
  [SMALL_STATE(525)] = 12336,
  [SMALL_STATE(526)] = 12343,
  [SMALL_STATE(527)] = 12348,
  [SMALL_STATE(528)] = 12355,
  [SMALL_STATE(529)] = 12362,
  [SMALL_STATE(530)] = 12369,
  [SMALL_STATE(531)] = 12376,
  [SMALL_STATE(532)] = 12383,
  [SMALL_STATE(533)] = 12390,
  [SMALL_STATE(534)] = 12397,
  [SMALL_STATE(535)] = 12404,
  [SMALL_STATE(536)] = 12411,
  [SMALL_STATE(537)] = 12418,
  [SMALL_STATE(538)] = 12425,
  [SMALL_STATE(539)] = 12432,
  [SMALL_STATE(540)] = 12439,
  [SMALL_STATE(541)] = 12446,
  [SMALL_STATE(542)] = 12453,
  [SMALL_STATE(543)] = 12460,
  [SMALL_STATE(544)] = 12467,
  [SMALL_STATE(545)] = 12474,
  [SMALL_STATE(546)] = 12481,
  [SMALL_STATE(547)] = 12486,
  [SMALL_STATE(548)] = 12493,
  [SMALL_STATE(549)] = 12500,
  [SMALL_STATE(550)] = 12507,
  [SMALL_STATE(551)] = 12514,
  [SMALL_STATE(552)] = 12521,
  [SMALL_STATE(553)] = 12528,
  [SMALL_STATE(554)] = 12535,
  [SMALL_STATE(555)] = 12542,
  [SMALL_STATE(556)] = 12549,
  [SMALL_STATE(557)] = 12554,
  [SMALL_STATE(558)] = 12561,
  [SMALL_STATE(559)] = 12566,
  [SMALL_STATE(560)] = 12570,
  [SMALL_STATE(561)] = 12574,
  [SMALL_STATE(562)] = 12578,
  [SMALL_STATE(563)] = 12582,
  [SMALL_STATE(564)] = 12586,
  [SMALL_STATE(565)] = 12590,
  [SMALL_STATE(566)] = 12594,
  [SMALL_STATE(567)] = 12598,
  [SMALL_STATE(568)] = 12602,
  [SMALL_STATE(569)] = 12606,
  [SMALL_STATE(570)] = 12610,
  [SMALL_STATE(571)] = 12614,
  [SMALL_STATE(572)] = 12618,
  [SMALL_STATE(573)] = 12622,
  [SMALL_STATE(574)] = 12626,
  [SMALL_STATE(575)] = 12630,
  [SMALL_STATE(576)] = 12634,
  [SMALL_STATE(577)] = 12638,
  [SMALL_STATE(578)] = 12642,
  [SMALL_STATE(579)] = 12646,
  [SMALL_STATE(580)] = 12650,
  [SMALL_STATE(581)] = 12654,
  [SMALL_STATE(582)] = 12658,
  [SMALL_STATE(583)] = 12662,
  [SMALL_STATE(584)] = 12666,
  [SMALL_STATE(585)] = 12670,
  [SMALL_STATE(586)] = 12674,
  [SMALL_STATE(587)] = 12678,
  [SMALL_STATE(588)] = 12682,
  [SMALL_STATE(589)] = 12686,
  [SMALL_STATE(590)] = 12690,
  [SMALL_STATE(591)] = 12694,
  [SMALL_STATE(592)] = 12698,
  [SMALL_STATE(593)] = 12702,
  [SMALL_STATE(594)] = 12706,
  [SMALL_STATE(595)] = 12710,
  [SMALL_STATE(596)] = 12714,
  [SMALL_STATE(597)] = 12718,
  [SMALL_STATE(598)] = 12722,
  [SMALL_STATE(599)] = 12726,
  [SMALL_STATE(600)] = 12730,
  [SMALL_STATE(601)] = 12734,
  [SMALL_STATE(602)] = 12738,
  [SMALL_STATE(603)] = 12742,
  [SMALL_STATE(604)] = 12746,
  [SMALL_STATE(605)] = 12750,
  [SMALL_STATE(606)] = 12754,
  [SMALL_STATE(607)] = 12758,
  [SMALL_STATE(608)] = 12762,
  [SMALL_STATE(609)] = 12766,
  [SMALL_STATE(610)] = 12770,
  [SMALL_STATE(611)] = 12774,
  [SMALL_STATE(612)] = 12778,
  [SMALL_STATE(613)] = 12782,
  [SMALL_STATE(614)] = 12786,
  [SMALL_STATE(615)] = 12790,
  [SMALL_STATE(616)] = 12794,
  [SMALL_STATE(617)] = 12798,
  [SMALL_STATE(618)] = 12802,
  [SMALL_STATE(619)] = 12806,
  [SMALL_STATE(620)] = 12810,
  [SMALL_STATE(621)] = 12814,
  [SMALL_STATE(622)] = 12818,
  [SMALL_STATE(623)] = 12822,
  [SMALL_STATE(624)] = 12826,
  [SMALL_STATE(625)] = 12830,
  [SMALL_STATE(626)] = 12834,
  [SMALL_STATE(627)] = 12838,
  [SMALL_STATE(628)] = 12842,
  [SMALL_STATE(629)] = 12846,
  [SMALL_STATE(630)] = 12850,
  [SMALL_STATE(631)] = 12854,
  [SMALL_STATE(632)] = 12858,
  [SMALL_STATE(633)] = 12862,
  [SMALL_STATE(634)] = 12866,
  [SMALL_STATE(635)] = 12870,
  [SMALL_STATE(636)] = 12874,
  [SMALL_STATE(637)] = 12878,
  [SMALL_STATE(638)] = 12882,
  [SMALL_STATE(639)] = 12886,
  [SMALL_STATE(640)] = 12890,
  [SMALL_STATE(641)] = 12894,
  [SMALL_STATE(642)] = 12898,
  [SMALL_STATE(643)] = 12902,
  [SMALL_STATE(644)] = 12906,
  [SMALL_STATE(645)] = 12910,
  [SMALL_STATE(646)] = 12914,
  [SMALL_STATE(647)] = 12918,
  [SMALL_STATE(648)] = 12922,
  [SMALL_STATE(649)] = 12926,
  [SMALL_STATE(650)] = 12930,
  [SMALL_STATE(651)] = 12934,
  [SMALL_STATE(652)] = 12938,
  [SMALL_STATE(653)] = 12942,
  [SMALL_STATE(654)] = 12946,
  [SMALL_STATE(655)] = 12950,
  [SMALL_STATE(656)] = 12954,
  [SMALL_STATE(657)] = 12958,
  [SMALL_STATE(658)] = 12962,
  [SMALL_STATE(659)] = 12966,
  [SMALL_STATE(660)] = 12970,
  [SMALL_STATE(661)] = 12974,
  [SMALL_STATE(662)] = 12978,
  [SMALL_STATE(663)] = 12982,
  [SMALL_STATE(664)] = 12986,
  [SMALL_STATE(665)] = 12990,
  [SMALL_STATE(666)] = 12994,
  [SMALL_STATE(667)] = 12998,
  [SMALL_STATE(668)] = 13002,
  [SMALL_STATE(669)] = 13006,
  [SMALL_STATE(670)] = 13010,
  [SMALL_STATE(671)] = 13014,
  [SMALL_STATE(672)] = 13018,
  [SMALL_STATE(673)] = 13022,
  [SMALL_STATE(674)] = 13026,
  [SMALL_STATE(675)] = 13030,
  [SMALL_STATE(676)] = 13034,
  [SMALL_STATE(677)] = 13038,
  [SMALL_STATE(678)] = 13042,
  [SMALL_STATE(679)] = 13046,
  [SMALL_STATE(680)] = 13050,
  [SMALL_STATE(681)] = 13054,
  [SMALL_STATE(682)] = 13058,
  [SMALL_STATE(683)] = 13062,
  [SMALL_STATE(684)] = 13066,
};

static const TSParseActionEntry ts_parse_actions[] = {
  [0] = {.entry = {.count = 0, .reusable = false}},
  [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(),
  [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108),
  [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96),
  [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(556),
  [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(684),
  [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106),
  [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(362),
  [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(683),
  [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(682),
  [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91),
  [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(681),
  [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(537),
  [25] = {.entry = {.count = 1, .reusable = true}}, SHIFT(679),
  [27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(639),
  [29] = {.entry = {.count = 1, .reusable = true}}, SHIFT(414),
  [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(550),
  [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(632),
  [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(504),
  [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(465),
  [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27),
  [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(527),
  [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(471),
  [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(625),
  [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(624),
  [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88),
  [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(133),
  [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(597),
  [55] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61),
  [57] = {.entry = {.count = 1, .reusable = true}}, SHIFT(596),
  [59] = {.entry = {.count = 1, .reusable = false}}, SHIFT(308),
  [61] = {.entry = {.count = 1, .reusable = true}}, SHIFT(478),
  [63] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128),
  [65] = {.entry = {.count = 1, .reusable = false}}, SHIFT(590),
  [67] = {.entry = {.count = 1, .reusable = false}}, SHIFT(309),
  [69] = {.entry = {.count = 1, .reusable = true}}, SHIFT(600),
  [71] = {.entry = {.count = 1, .reusable = false}}, SHIFT(382),
  [73] = {.entry = {.count = 1, .reusable = false}}, SHIFT(381),
  [75] = {.entry = {.count = 1, .reusable = true}}, SHIFT(538),
  [77] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54),
  [79] = {.entry = {.count = 1, .reusable = true}}, SHIFT(172),
  [81] = {.entry = {.count = 1, .reusable = false}}, SHIFT(113),
  [83] = {.entry = {.count = 1, .reusable = true}}, SHIFT(492),
  [85] = {.entry = {.count = 1, .reusable = false}}, SHIFT(599),
  [87] = {.entry = {.count = 1, .reusable = false}}, SHIFT(143),
  [89] = {.entry = {.count = 1, .reusable = false}}, SHIFT(452),
  [91] = {.entry = {.count = 1, .reusable = true}}, SHIFT(609),
  [93] = {.entry = {.count = 1, .reusable = false}}, SHIFT(142),
  [95] = {.entry = {.count = 1, .reusable = false}}, SHIFT(320),
  [97] = {.entry = {.count = 1, .reusable = true}}, SHIFT(505),
  [99] = {.entry = {.count = 1, .reusable = true}}, SHIFT(178),
  [101] = {.entry = {.count = 1, .reusable = false}}, SHIFT(431),
  [103] = {.entry = {.count = 1, .reusable = true}}, SHIFT(511),
  [105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(283),
  [107] = {.entry = {.count = 1, .reusable = false}}, SHIFT(461),
  [109] = {.entry = {.count = 1, .reusable = true}}, SHIFT(519),
  [111] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82),
  [113] = {.entry = {.count = 1, .reusable = false}}, SHIFT(487),
  [115] = {.entry = {.count = 1, .reusable = true}}, SHIFT(512),
  [117] = {.entry = {.count = 1, .reusable = true}}, SHIFT(440),
  [119] = {.entry = {.count = 1, .reusable = false}}, SHIFT(491),
  [121] = {.entry = {.count = 1, .reusable = true}}, SHIFT(534),
  [123] = {.entry = {.count = 1, .reusable = true}}, SHIFT(212),
  [125] = {.entry = {.count = 1, .reusable = false}}, SHIFT(457),
  [127] = {.entry = {.count = 1, .reusable = true}}, SHIFT(529),
  [129] = {.entry = {.count = 1, .reusable = true}}, SHIFT(226),
  [131] = {.entry = {.count = 1, .reusable = false}}, SHIFT(470),
  [133] = {.entry = {.count = 1, .reusable = true}}, SHIFT(557),
  [135] = {.entry = {.count = 1, .reusable = true}}, SHIFT(234),
  [137] = {.entry = {.count = 1, .reusable = false}}, SHIFT(424),
  [139] = {.entry = {.count = 1, .reusable = true}}, SHIFT(677),
  [141] = {.entry = {.count = 1, .reusable = false}}, SHIFT(140),
  [143] = {.entry = {.count = 1, .reusable = true}}, SHIFT(675),
  [145] = {.entry = {.count = 1, .reusable = true}}, SHIFT(673),
  [147] = {.entry = {.count = 1, .reusable = true}}, SHIFT(671),
  [149] = {.entry = {.count = 1, .reusable = true}}, SHIFT(669),
  [151] = {.entry = {.count = 1, .reusable = true}}, SHIFT(667),
  [153] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32),
  [155] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71),
  [157] = {.entry = {.count = 1, .reusable = false}}, SHIFT(230),
  [159] = {.entry = {.count = 1, .reusable = true}}, SHIFT(454),
  [161] = {.entry = {.count = 1, .reusable = false}}, SHIFT(666),
  [163] = {.entry = {.count = 1, .reusable = false}}, SHIFT(229),
  [165] = {.entry = {.count = 1, .reusable = true}}, SHIFT(591),
  [167] = {.entry = {.count = 1, .reusable = false}}, SHIFT(277),
  [169] = {.entry = {.count = 1, .reusable = false}}, SHIFT(278),
  [171] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127),
  [173] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83),
  [175] = {.entry = {.count = 1, .reusable = true}}, SHIFT(573),
  [177] = {.entry = {.count = 1, .reusable = true}}, SHIFT(672),
  [179] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29),
  [181] = {.entry = {.count = 1, .reusable = false}}, SHIFT(201),
  [183] = {.entry = {.count = 1, .reusable = true}}, SHIFT(426),
  [185] = {.entry = {.count = 1, .reusable = false}}, SHIFT(626),
  [187] = {.entry = {.count = 1, .reusable = false}}, SHIFT(237),
  [189] = {.entry = {.count = 1, .reusable = true}}, SHIFT(627),
  [191] = {.entry = {.count = 1, .reusable = false}}, SHIFT(274),
  [193] = {.entry = {.count = 1, .reusable = false}}, SHIFT(276),
  [195] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90),
  [197] = {.entry = {.count = 1, .reusable = false}}, SHIFT(180),
  [199] = {.entry = {.count = 1, .reusable = true}}, SHIFT(423),
  [201] = {.entry = {.count = 1, .reusable = false}}, SHIFT(578),
  [203] = {.entry = {.count = 1, .reusable = false}}, SHIFT(179),
  [205] = {.entry = {.count = 1, .reusable = true}}, SHIFT(579),
  [207] = {.entry = {.count = 1, .reusable = false}}, SHIFT(244),
  [209] = {.entry = {.count = 1, .reusable = false}}, SHIFT(245),
  [211] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_annotation_repeat1, 2), SHIFT_REPEAT(84),
  [214] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_annotation_repeat1, 2),
  [216] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_type_annotation_repeat1, 2),
  [218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35),
  [220] = {.entry = {.count = 1, .reusable = false}}, SHIFT(171),
  [222] = {.entry = {.count = 1, .reusable = true}}, SHIFT(472),
  [224] = {.entry = {.count = 1, .reusable = false}}, SHIFT(620),
  [226] = {.entry = {.count = 1, .reusable = false}}, SHIFT(175),
  [228] = {.entry = {.count = 1, .reusable = true}}, SHIFT(619),
  [230] = {.entry = {.count = 1, .reusable = false}}, SHIFT(248),
  [232] = {.entry = {.count = 1, .reusable = false}}, SHIFT(240),
  [234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(120),
  [236] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_type, 3),
  [238] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_type, 3),
  [240] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40),
  [242] = {.entry = {.count = 1, .reusable = false}}, SHIFT(153),
  [244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(462),
  [246] = {.entry = {.count = 1, .reusable = false}}, SHIFT(617),
  [248] = {.entry = {.count = 1, .reusable = false}}, SHIFT(152),
  [250] = {.entry = {.count = 1, .reusable = true}}, SHIFT(618),
  [252] = {.entry = {.count = 1, .reusable = false}}, SHIFT(183),
  [254] = {.entry = {.count = 1, .reusable = false}}, SHIFT(187),
  [256] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124),
  [258] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_type, 4),
  [260] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_type, 4),
  [262] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84),
  [264] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_type, 5),
  [266] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_type, 5),
  [268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22),
  [270] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_type, 6),
  [272] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_type, 6),
  [274] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_type, 7),
  [276] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_type, 7),
  [278] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_type, 8),
  [280] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_type, 8),
  [282] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_builtin_type, 1),
  [284] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_builtin_type, 1),
  [286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53),
  [288] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_literal_type, 2),
  [290] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_table_literal_type, 2),
  [292] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_literal_type, 7, .production_id = 9),
  [294] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_table_literal_type, 7, .production_id = 9),
  [296] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_literal_type, 9, .production_id = 13),
  [298] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_table_literal_type, 9, .production_id = 13),
  [300] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_literal_type, 8, .production_id = 12),
  [302] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_table_literal_type, 8, .production_id = 12),
  [304] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_optional_type, 2),
  [306] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_optional_type, 2),
  [308] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_literal_type, 7, .production_id = 10),
  [310] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_table_literal_type, 7, .production_id = 10),
  [312] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_literal_type, 6, .production_id = 7),
  [314] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_table_literal_type, 6, .production_id = 7),
  [316] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_type, 6, .production_id = 6),
  [318] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_table_type, 6, .production_id = 6),
  [320] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_literal_type, 6, .production_id = 4),
  [322] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_table_literal_type, 6, .production_id = 4),
  [324] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_type, 3),
  [326] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_type, 3),
  [328] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_literal_type, 3),
  [330] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_literal_type, 3),
  [332] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 1),
  [334] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type, 1),
  [336] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_literal_type, 8, .production_id = 9),
  [338] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_table_literal_type, 8, .production_id = 9),
  [340] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6),
  [342] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_type, 3),
  [344] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_union_type, 3),
  [346] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_literal_type, 5, .production_id = 4),
  [348] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_table_literal_type, 5, .production_id = 4),
  [350] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 3),
  [352] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_type, 3),
  [354] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_type, 4, .production_id = 3),
  [356] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_table_type, 4, .production_id = 3),
  [358] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_member_type, 3),
  [360] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_member_type, 3),
  [362] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_positional_field, 3),
  [364] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_positional_field, 3),
  [366] = {.entry = {.count = 1, .reusable = false}}, SHIFT(107),
  [368] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3),
  [370] = {.entry = {.count = 1, .reusable = false}}, SHIFT(38),
  [372] = {.entry = {.count = 1, .reusable = false}}, SHIFT(189),
  [374] = {.entry = {.count = 1, .reusable = false}}, SHIFT(559),
  [376] = {.entry = {.count = 1, .reusable = false}}, SHIFT(574),
  [378] = {.entry = {.count = 1, .reusable = false}}, SHIFT(110),
  [380] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_type_annotation_repeat1, 2), SHIFT_REPEAT(107),
  [383] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_annotation, 2),
  [385] = {.entry = {.count = 1, .reusable = false}}, SHIFT(79),
  [387] = {.entry = {.count = 1, .reusable = false}}, SHIFT(247),
  [389] = {.entry = {.count = 1, .reusable = false}}, SHIFT(658),
  [391] = {.entry = {.count = 1, .reusable = false}}, SHIFT(585),
  [393] = {.entry = {.count = 1, .reusable = false}}, SHIFT(584),
  [395] = {.entry = {.count = 1, .reusable = false}}, SHIFT(656),
  [397] = {.entry = {.count = 1, .reusable = false}}, SHIFT(39),
  [399] = {.entry = {.count = 1, .reusable = false}}, SHIFT(125),
  [401] = {.entry = {.count = 1, .reusable = false}}, SHIFT(85),
  [403] = {.entry = {.count = 1, .reusable = false}}, SHIFT(122),
  [405] = {.entry = {.count = 1, .reusable = false}}, SHIFT(68),
  [407] = {.entry = {.count = 1, .reusable = false}}, SHIFT(92),
  [409] = {.entry = {.count = 1, .reusable = false}}, SHIFT(118),
  [411] = {.entry = {.count = 1, .reusable = false}}, SHIFT(9),
  [413] = {.entry = {.count = 1, .reusable = false}}, SHIFT(115),
  [415] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4),
  [417] = {.entry = {.count = 1, .reusable = false}}, SHIFT(87),
  [419] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_annotation, 2),
  [421] = {.entry = {.count = 1, .reusable = false}}, SHIFT(72),
  [423] = {.entry = {.count = 1, .reusable = false}}, SHIFT(223),
  [425] = {.entry = {.count = 1, .reusable = false}}, SHIFT(589),
  [427] = {.entry = {.count = 1, .reusable = false}}, SHIFT(588),
  [429] = {.entry = {.count = 1, .reusable = false}}, SHIFT(587),
  [431] = {.entry = {.count = 1, .reusable = false}}, SHIFT(586),
  [433] = {.entry = {.count = 1, .reusable = false}}, SHIFT(78),
  [435] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_type_annotation_repeat1, 2), SHIFT_REPEAT(79),
  [438] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_annotation, 4),
  [440] = {.entry = {.count = 1, .reusable = false}}, SHIFT(280),
  [442] = {.entry = {.count = 1, .reusable = false}}, SHIFT(640),
  [444] = {.entry = {.count = 1, .reusable = false}}, SHIFT(621),
  [446] = {.entry = {.count = 1, .reusable = false}}, SHIFT(638),
  [448] = {.entry = {.count = 1, .reusable = false}}, SHIFT(51),
  [450] = {.entry = {.count = 1, .reusable = false}}, SHIFT(28),
  [452] = {.entry = {.count = 1, .reusable = false}}, SHIFT(23),
  [454] = {.entry = {.count = 1, .reusable = false}}, SHIFT(44),
  [456] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_annotation, 3),
  [458] = {.entry = {.count = 1, .reusable = false}}, SHIFT(652),
  [460] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_type_annotation_repeat1, 2), SHIFT_REPEAT(36),
  [463] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_alias_annotation, 3),
  [465] = {.entry = {.count = 1, .reusable = false}}, SHIFT(595),
  [467] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_param_annotation, 3),
  [469] = {.entry = {.count = 1, .reusable = false}}, SHIFT(594),
  [471] = {.entry = {.count = 1, .reusable = false}}, SHIFT(36),
  [473] = {.entry = {.count = 1, .reusable = false}}, SHIFT(289),
  [475] = {.entry = {.count = 1, .reusable = false}}, SHIFT(562),
  [477] = {.entry = {.count = 1, .reusable = false}}, SHIFT(564),
  [479] = {.entry = {.count = 1, .reusable = false}}, SHIFT(66),
  [481] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_annotation, 5),
  [483] = {.entry = {.count = 1, .reusable = false}}, SHIFT(654),
  [485] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8),
  [487] = {.entry = {.count = 1, .reusable = false}}, SHIFT(70),
  [489] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_annotation, 2),
  [491] = {.entry = {.count = 1, .reusable = false}}, SHIFT(582),
  [493] = {.entry = {.count = 1, .reusable = false}}, SHIFT(73),
  [495] = {.entry = {.count = 1, .reusable = false}}, SHIFT(10),
  [497] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_param_annotation, 4),
  [499] = {.entry = {.count = 1, .reusable = false}}, SHIFT(631),
  [501] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_annotation, 4),
  [503] = {.entry = {.count = 1, .reusable = false}}, SHIFT(633),
  [505] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69),
  [507] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89),
  [509] = {.entry = {.count = 1, .reusable = true}}, SHIFT(219),
  [511] = {.entry = {.count = 1, .reusable = true}}, SHIFT(541),
  [513] = {.entry = {.count = 1, .reusable = true}}, SHIFT(269),
  [515] = {.entry = {.count = 1, .reusable = true}}, SHIFT(331),
  [517] = {.entry = {.count = 1, .reusable = true}}, SHIFT(327),
  [519] = {.entry = {.count = 1, .reusable = true}}, SHIFT(228),
  [521] = {.entry = {.count = 1, .reusable = false}}, SHIFT(60),
  [523] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5),
  [525] = {.entry = {.count = 1, .reusable = true}}, SHIFT(321),
  [527] = {.entry = {.count = 1, .reusable = true}}, SHIFT(204),
  [529] = {.entry = {.count = 1, .reusable = true}}, SHIFT(163),
  [531] = {.entry = {.count = 1, .reusable = true}}, SHIFT(196),
  [533] = {.entry = {.count = 1, .reusable = true}}, SHIFT(194),
  [535] = {.entry = {.count = 1, .reusable = true}}, SHIFT(192),
  [537] = {.entry = {.count = 1, .reusable = true}}, SHIFT(169),
  [539] = {.entry = {.count = 1, .reusable = true}}, SHIFT(141),
  [541] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130),
  [543] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102),
  [545] = {.entry = {.count = 1, .reusable = true}}, SHIFT(612),
  [547] = {.entry = {.count = 1, .reusable = true}}, SHIFT(214),
  [549] = {.entry = {.count = 1, .reusable = true}}, SHIFT(137),
  [551] = {.entry = {.count = 1, .reusable = true}}, SHIFT(145),
  [553] = {.entry = {.count = 1, .reusable = true}}, SHIFT(425),
  [555] = {.entry = {.count = 1, .reusable = true}}, SHIFT(355),
  [557] = {.entry = {.count = 1, .reusable = true}}, SHIFT(361),
  [559] = {.entry = {.count = 1, .reusable = true}}, SHIFT(367),
  [561] = {.entry = {.count = 1, .reusable = true}}, SHIFT(359),
  [563] = {.entry = {.count = 1, .reusable = true}}, SHIFT(199),
  [565] = {.entry = {.count = 1, .reusable = true}}, SHIFT(260),
  [567] = {.entry = {.count = 1, .reusable = true}}, SHIFT(305),
  [569] = {.entry = {.count = 1, .reusable = true}}, SHIFT(300),
  [571] = {.entry = {.count = 1, .reusable = true}}, SHIFT(297),
  [573] = {.entry = {.count = 1, .reusable = true}}, SHIFT(174),
  [575] = {.entry = {.count = 1, .reusable = true}}, SHIFT(259),
  [577] = {.entry = {.count = 1, .reusable = true}}, SHIFT(264),
  [579] = {.entry = {.count = 1, .reusable = true}}, SHIFT(267),
  [581] = {.entry = {.count = 1, .reusable = true}}, SHIFT(292),
  [583] = {.entry = {.count = 1, .reusable = true}}, SHIFT(291),
  [585] = {.entry = {.count = 1, .reusable = true}}, SHIFT(207),
  [587] = {.entry = {.count = 1, .reusable = true}}, SHIFT(238),
  [589] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65),
  [591] = {.entry = {.count = 1, .reusable = true}}, SHIFT(290),
  [593] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter, 3),
  [595] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_type_repeat2, 2),
  [597] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81),
  [599] = {.entry = {.count = 1, .reusable = true}}, SHIFT(257),
  [601] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58),
  [603] = {.entry = {.count = 1, .reusable = true}}, SHIFT(368),
  [605] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_operator_annotation, 4),
  [607] = {.entry = {.count = 1, .reusable = false}}, SHIFT(377),
  [609] = {.entry = {.count = 1, .reusable = false}}, SHIFT(614),
  [611] = {.entry = {.count = 1, .reusable = false}}, SHIFT(644),
  [613] = {.entry = {.count = 1, .reusable = false}}, SHIFT(613),
  [615] = {.entry = {.count = 1, .reusable = false}}, SHIFT(77),
  [617] = {.entry = {.count = 1, .reusable = false}}, SHIFT(526),
  [619] = {.entry = {.count = 1, .reusable = true}}, SHIFT(615),
  [621] = {.entry = {.count = 1, .reusable = false}}, SHIFT(17),
  [623] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50),
  [625] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148),
  [627] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter, 4),
  [629] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34),
  [631] = {.entry = {.count = 1, .reusable = true}}, SHIFT(173),
  [633] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119),
  [635] = {.entry = {.count = 1, .reusable = true}}, SHIFT(258),
  [637] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_operator_annotation, 7),
  [639] = {.entry = {.count = 1, .reusable = false}}, SHIFT(678),
  [641] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cast_annotation, 3),
  [643] = {.entry = {.count = 1, .reusable = false}}, SHIFT(610),
  [645] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25),
  [647] = {.entry = {.count = 1, .reusable = true}}, SHIFT(316),
  [649] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_table_literal_type_repeat1, 4, .production_id = 4),
  [651] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_table_literal_type_repeat1, 5, .production_id = 4),
  [653] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_table_literal_type_repeat1, 6, .production_id = 9),
  [655] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_see_reference, 2),
  [657] = {.entry = {.count = 1, .reusable = false}}, SHIFT(570),
  [659] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_vararg_annotation, 2),
  [661] = {.entry = {.count = 1, .reusable = false}}, SHIFT(572),
  [663] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_table_literal_type_repeat1, 7, .production_id = 9),
  [665] = {.entry = {.count = 1, .reusable = true}}, SHIFT(203),
  [667] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_annotation, 3),
  [669] = {.entry = {.count = 1, .reusable = false}}, SHIFT(593),
  [671] = {.entry = {.count = 1, .reusable = true}}, SHIFT(295),
  [673] = {.entry = {.count = 1, .reusable = true}}, SHIFT(293),
  [675] = {.entry = {.count = 1, .reusable = true}}, SHIFT(249),
  [677] = {.entry = {.count = 1, .reusable = true}}, SHIFT(262),
  [679] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162),
  [681] = {.entry = {.count = 1, .reusable = true}}, SHIFT(322),
  [683] = {.entry = {.count = 1, .reusable = true}}, SHIFT(515),
  [685] = {.entry = {.count = 1, .reusable = true}}, SHIFT(375),
  [687] = {.entry = {.count = 1, .reusable = true}}, SHIFT(516),
  [689] = {.entry = {.count = 1, .reusable = true}}, SHIFT(191),
  [691] = {.entry = {.count = 1, .reusable = true}}, SHIFT(136),
  [693] = {.entry = {.count = 1, .reusable = true}}, SHIFT(506),
  [695] = {.entry = {.count = 1, .reusable = true}}, SHIFT(554),
  [697] = {.entry = {.count = 1, .reusable = true}}, SHIFT(282),
  [699] = {.entry = {.count = 1, .reusable = true}}, SHIFT(549),
  [701] = {.entry = {.count = 1, .reusable = true}}, SHIFT(535),
  [703] = {.entry = {.count = 1, .reusable = true}}, SHIFT(544),
  [705] = {.entry = {.count = 1, .reusable = true}}, SHIFT(365),
  [707] = {.entry = {.count = 1, .reusable = true}}, SHIFT(536),
  [709] = {.entry = {.count = 1, .reusable = true}}, SHIFT(202),
  [711] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138),
  [713] = {.entry = {.count = 1, .reusable = true}}, SHIFT(646),
  [715] = {.entry = {.count = 1, .reusable = true}}, SHIFT(513),
  [717] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_generic_annotation, 2),
  [719] = {.entry = {.count = 1, .reusable = false}}, SHIFT(580),
  [721] = {.entry = {.count = 1, .reusable = false}}, SHIFT(577),
  [723] = {.entry = {.count = 1, .reusable = false}}, SHIFT(575),
  [725] = {.entry = {.count = 1, .reusable = true}}, SHIFT(650),
  [727] = {.entry = {.count = 1, .reusable = false}}, SHIFT(545),
  [729] = {.entry = {.count = 1, .reusable = true}}, SHIFT(166),
  [731] = {.entry = {.count = 1, .reusable = true}}, SHIFT(416),
  [733] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16),
  [735] = {.entry = {.count = 1, .reusable = true}}, SHIFT(246),
  [737] = {.entry = {.count = 1, .reusable = true}}, SHIFT(533),
  [739] = {.entry = {.count = 1, .reusable = true}}, SHIFT(552),
  [741] = {.entry = {.count = 1, .reusable = false}}, SHIFT(116),
  [743] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11),
  [745] = {.entry = {.count = 1, .reusable = true}}, SHIFT(281),
  [747] = {.entry = {.count = 1, .reusable = true}}, SHIFT(532),
  [749] = {.entry = {.count = 1, .reusable = true}}, SHIFT(170),
  [751] = {.entry = {.count = 1, .reusable = true}}, SHIFT(185),
  [753] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_generic_annotation, 6),
  [755] = {.entry = {.count = 1, .reusable = false}}, SHIFT(664),
  [757] = {.entry = {.count = 1, .reusable = false}}, SHIFT(668),
  [759] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186),
  [761] = {.entry = {.count = 1, .reusable = true}}, SHIFT(547),
  [763] = {.entry = {.count = 1, .reusable = true}}, SHIFT(206),
  [765] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_type_repeat1, 2), SHIFT_REPEAT(416),
  [768] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_type_repeat1, 2),
  [770] = {.entry = {.count = 1, .reusable = true}}, SHIFT(193),
  [772] = {.entry = {.count = 1, .reusable = true}}, SHIFT(263),
  [774] = {.entry = {.count = 1, .reusable = false}}, SHIFT(123),
  [776] = {.entry = {.count = 1, .reusable = true}}, SHIFT(168),
  [778] = {.entry = {.count = 1, .reusable = true}}, SHIFT(268),
  [780] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_type_repeat2, 2), SHIFT_REPEAT(69),
  [783] = {.entry = {.count = 1, .reusable = true}}, SHIFT(239),
  [785] = {.entry = {.count = 1, .reusable = true}}, SHIFT(205),
  [787] = {.entry = {.count = 1, .reusable = true}}, SHIFT(231),
  [789] = {.entry = {.count = 1, .reusable = true}}, SHIFT(324),
  [791] = {.entry = {.count = 1, .reusable = true}}, SHIFT(222),
  [793] = {.entry = {.count = 1, .reusable = true}}, SHIFT(543),
  [795] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_diagnostic_annotation, 5),
  [797] = {.entry = {.count = 1, .reusable = true}}, SHIFT(642),
  [799] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15),
  [801] = {.entry = {.count = 1, .reusable = true}}, SHIFT(279),
  [803] = {.entry = {.count = 1, .reusable = true}}, SHIFT(540),
  [805] = {.entry = {.count = 1, .reusable = true}}, SHIFT(332),
  [807] = {.entry = {.count = 1, .reusable = true}}, SHIFT(539),
  [809] = {.entry = {.count = 1, .reusable = true}}, SHIFT(336),
  [811] = {.entry = {.count = 1, .reusable = true}}, SHIFT(339),
  [813] = {.entry = {.count = 1, .reusable = true}}, SHIFT(235),
  [815] = {.entry = {.count = 1, .reusable = true}}, SHIFT(528),
  [817] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12),
  [819] = {.entry = {.count = 1, .reusable = true}}, SHIFT(188),
  [821] = {.entry = {.count = 1, .reusable = true}}, SHIFT(555),
  [823] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131),
  [825] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_deprecated_annotation, 1),
  [827] = {.entry = {.count = 1, .reusable = false}}, SHIFT(602),
  [829] = {.entry = {.count = 1, .reusable = false}}, SHIFT(601),
  [831] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132),
  [833] = {.entry = {.count = 1, .reusable = true}}, SHIFT(294),
  [835] = {.entry = {.count = 1, .reusable = true}}, SHIFT(296),
  [837] = {.entry = {.count = 1, .reusable = true}}, SHIFT(517),
  [839] = {.entry = {.count = 1, .reusable = false}}, SHIFT(608),
  [841] = {.entry = {.count = 1, .reusable = true}}, SHIFT(608),
  [843] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20),
  [845] = {.entry = {.count = 1, .reusable = true}}, SHIFT(225),
  [847] = {.entry = {.count = 1, .reusable = true}}, SHIFT(514),
  [849] = {.entry = {.count = 1, .reusable = true}}, SHIFT(301),
  [851] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134),
  [853] = {.entry = {.count = 1, .reusable = true}}, SHIFT(304),
  [855] = {.entry = {.count = 1, .reusable = true}}, SHIFT(242),
  [857] = {.entry = {.count = 1, .reusable = true}}, SHIFT(307),
  [859] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14),
  [861] = {.entry = {.count = 1, .reusable = true}}, SHIFT(379),
  [863] = {.entry = {.count = 1, .reusable = true}}, SHIFT(548),
  [865] = {.entry = {.count = 1, .reusable = false}}, SHIFT(111),
  [867] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_diagnostic_annotation_repeat1, 2),
  [869] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_diagnostic_annotation_repeat1, 2), SHIFT_REPEAT(642),
  [872] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18),
  [874] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_at_comment, 2),
  [876] = {.entry = {.count = 1, .reusable = false}}, SHIFT(628),
  [878] = {.entry = {.count = 1, .reusable = false}}, SHIFT(629),
  [880] = {.entry = {.count = 1, .reusable = true}}, SHIFT(135),
  [882] = {.entry = {.count = 1, .reusable = true}}, SHIFT(479),
  [884] = {.entry = {.count = 1, .reusable = true}}, SHIFT(530),
  [886] = {.entry = {.count = 1, .reusable = true}}, SHIFT(227),
  [888] = {.entry = {.count = 1, .reusable = true}}, SHIFT(518),
  [890] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13),
  [892] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129),
  [894] = {.entry = {.count = 1, .reusable = true}}, SHIFT(553),
  [896] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94),
  [898] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_table_literal_type_repeat1, 2, .production_id = 8), SHIFT_REPEAT(541),
  [901] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_table_literal_type_repeat1, 2, .production_id = 8),
  [903] = {.entry = {.count = 1, .reusable = true}}, SHIFT(363),
  [905] = {.entry = {.count = 1, .reusable = true}}, SHIFT(221),
  [907] = {.entry = {.count = 1, .reusable = true}}, SHIFT(354),
  [909] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_diagnostic_annotation, 4),
  [911] = {.entry = {.count = 1, .reusable = true}}, SHIFT(358),
  [913] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_generic_annotation, 4),
  [915] = {.entry = {.count = 1, .reusable = false}}, SHIFT(637),
  [917] = {.entry = {.count = 1, .reusable = false}}, SHIFT(635),
  [919] = {.entry = {.count = 1, .reusable = true}}, SHIFT(357),
  [921] = {.entry = {.count = 1, .reusable = false}}, SHIFT(634),
  [923] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_nodiscard_annotation, 1),
  [925] = {.entry = {.count = 1, .reusable = true}}, SHIFT(603),
  [927] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31),
  [929] = {.entry = {.count = 1, .reusable = true}}, SHIFT(661),
  [931] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97),
  [933] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98),
  [935] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_overload_annotation, 2),
  [937] = {.entry = {.count = 1, .reusable = true}}, SHIFT(567),
  [939] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_annotation, 2),
  [941] = {.entry = {.count = 1, .reusable = true}}, SHIFT(568),
  [943] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_language_injection, 2),
  [945] = {.entry = {.count = 1, .reusable = true}}, SHIFT(569),
  [947] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_version_annotation, 2, .production_id = 1),
  [949] = {.entry = {.count = 1, .reusable = true}}, SHIFT(606),
  [951] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109),
  [953] = {.entry = {.count = 1, .reusable = true}}, SHIFT(566),
  [955] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117),
  [957] = {.entry = {.count = 1, .reusable = true}}, SHIFT(648),
  [959] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114),
  [961] = {.entry = {.count = 1, .reusable = true}}, SHIFT(665),
  [963] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121),
  [965] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_annotation, 2),
  [967] = {.entry = {.count = 1, .reusable = true}}, SHIFT(565),
  [969] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_generic_annotation, 8),
  [971] = {.entry = {.count = 1, .reusable = true}}, SHIFT(680),
  [973] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_diagnostic_annotation, 2),
  [975] = {.entry = {.count = 1, .reusable = true}}, SHIFT(571),
  [977] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_at_comment, 2),
  [979] = {.entry = {.count = 1, .reusable = true}}, SHIFT(630),
  [981] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75),
  [983] = {.entry = {.count = 1, .reusable = true}}, SHIFT(674),
  [985] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_annotation, 6, .production_id = 5),
  [987] = {.entry = {.count = 1, .reusable = true}}, SHIFT(670),
  [989] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_qualifier, 1),
  [991] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_async_annotation, 1),
  [993] = {.entry = {.count = 1, .reusable = true}}, SHIFT(598),
  [995] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_annotation, 4, .production_id = 2),
  [997] = {.entry = {.count = 1, .reusable = true}}, SHIFT(643),
  [999] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26),
  [1001] = {.entry = {.count = 1, .reusable = true}}, SHIFT(663),
  [1003] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24),
  [1005] = {.entry = {.count = 1, .reusable = true}}, SHIFT(636),
  [1007] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42),
  [1009] = {.entry = {.count = 1, .reusable = true}}, SHIFT(583),
  [1011] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76),
  [1013] = {.entry = {.count = 1, .reusable = true}}, SHIFT(645),
  [1015] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta_annotation, 1),
  [1017] = {.entry = {.count = 1, .reusable = true}}, SHIFT(611),
  [1019] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67),
  [1021] = {.entry = {.count = 1, .reusable = true}}, SHIFT(647),
  [1023] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21),
  [1025] = {.entry = {.count = 1, .reusable = true}}, SHIFT(524),
  [1027] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_at_comment, 4),
  [1029] = {.entry = {.count = 1, .reusable = true}}, SHIFT(662),
  [1031] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63),
  [1033] = {.entry = {.count = 1, .reusable = true}}, SHIFT(649),
  [1035] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59),
  [1037] = {.entry = {.count = 1, .reusable = true}}, SHIFT(651),
  [1039] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56),
  [1041] = {.entry = {.count = 1, .reusable = true}}, SHIFT(653),
  [1043] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_package_annotation, 1),
  [1045] = {.entry = {.count = 1, .reusable = true}}, SHIFT(605),
  [1047] = {.entry = {.count = 1, .reusable = true}}, SHIFT(668),
  [1049] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52),
  [1051] = {.entry = {.count = 1, .reusable = true}}, SHIFT(655),
  [1053] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48),
  [1055] = {.entry = {.count = 1, .reusable = true}}, SHIFT(657),
  [1057] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37),
  [1059] = {.entry = {.count = 1, .reusable = true}}, SHIFT(659),
  [1061] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19),
  [1063] = {.entry = {.count = 1, .reusable = true}}, SHIFT(197),
  [1065] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_deprecated_annotation, 3),
  [1067] = {.entry = {.count = 1, .reusable = true}}, SHIFT(298),
  [1069] = {.entry = {.count = 1, .reusable = true}}, SHIFT(299),
  [1071] = {.entry = {.count = 1, .reusable = true}}, SHIFT(531),
  [1073] = {.entry = {.count = 1, .reusable = true}}, SHIFT(302),
  [1075] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_annotation, 3),
  [1077] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100),
  [1079] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_overload_annotation, 3),
  [1081] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_annotation, 3),
  [1083] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_language_injection, 3),
  [1085] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_see_reference, 3),
  [1087] = {.entry = {.count = 1, .reusable = true}}, SHIFT(499),
  [1089] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_vararg_annotation, 3),
  [1091] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161),
  [1093] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_generic_annotation, 3),
  [1095] = {.entry = {.count = 1, .reusable = true}}, SHIFT(195),
  [1097] = {.entry = {.count = 1, .reusable = true}}, SHIFT(501),
  [1099] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4),
  [1101] = {.entry = {.count = 1, .reusable = true}}, SHIFT(660),
  [1103] = {.entry = {.count = 1, .reusable = true}}, SHIFT(503),
  [1105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150),
  [1107] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_annotation, 3),
  [1109] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41),
  [1111] = {.entry = {.count = 1, .reusable = true}}, SHIFT(523),
  [1113] = {.entry = {.count = 1, .reusable = true}}, SHIFT(241),
  [1115] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_annotation, 3),
  [1117] = {.entry = {.count = 1, .reusable = true}}, SHIFT(482),
  [1119] = {.entry = {.count = 1, .reusable = true}}, SHIFT(236),
  [1121] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5),
  [1123] = {.entry = {.count = 1, .reusable = true}}, SHIFT(641),
  [1125] = {.entry = {.count = 1, .reusable = true}}, SHIFT(232),
  [1127] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_annotation, 4),
  [1129] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_alias_annotation, 4),
  [1131] = {.entry = {.count = 1, .reusable = true}}, SHIFT(147),
  [1133] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149),
  [1135] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_async_annotation, 2),
  [1137] = {.entry = {.count = 1, .reusable = true}}, SHIFT(616),
  [1139] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_deprecated_annotation, 2),
  [1141] = {.entry = {.count = 1, .reusable = true}}, SHIFT(560),
  [1143] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_nodiscard_annotation, 2),
  [1145] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139),
  [1147] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_package_annotation, 2),
  [1149] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_version_annotation, 3, .production_id = 1),
  [1151] = {.entry = {.count = 1, .reusable = true}}, SHIFT(563),
  [1153] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7),
  [1155] = {.entry = {.count = 1, .reusable = true}}, SHIFT(604),
  [1157] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cast_annotation, 4),
  [1159] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta_annotation, 2),
  [1161] = {.entry = {.count = 1, .reusable = true}}, SHIFT(370),
  [1163] = {.entry = {.count = 1, .reusable = true}}, SHIFT(371),
  [1165] = {.entry = {.count = 1, .reusable = true}}, SHIFT(581),
  [1167] = {.entry = {.count = 1, .reusable = true}}, SHIFT(374),
  [1169] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3),
  [1171] = {.entry = {.count = 1, .reusable = true}}, SHIFT(576),
  [1173] = {.entry = {.count = 1, .reusable = true}}, SHIFT(592),
  [1175] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9),
  [1177] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_annotation, 5),
  [1179] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_documentation, 1),
  [1181] = {.entry = {.count = 1, .reusable = true}},  ACCEPT_INPUT(),
  [1183] = {.entry = {.count = 1, .reusable = true}}, SHIFT(510),
  [1185] = {.entry = {.count = 1, .reusable = true}}, SHIFT(509),
  [1187] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10),
  [1189] = {.entry = {.count = 1, .reusable = true}}, SHIFT(561),
  [1191] = {.entry = {.count = 1, .reusable = true}}, SHIFT(542),
  [1193] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_at_comment, 3),
  [1195] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_at_comment, 3),
  [1197] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_param_annotation, 5),
  [1199] = {.entry = {.count = 1, .reusable = true}}, SHIFT(507),
  [1201] = {.entry = {.count = 1, .reusable = true}}, SHIFT(429),
  [1203] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_generic_annotation, 5),
  [1205] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80),
  [1207] = {.entry = {.count = 1, .reusable = true}}, SHIFT(551),
  [1209] = {.entry = {.count = 1, .reusable = true}}, SHIFT(286),
  [1211] = {.entry = {.count = 1, .reusable = true}}, SHIFT(607),
  [1213] = {.entry = {.count = 1, .reusable = true}}, SHIFT(285),
  [1215] = {.entry = {.count = 1, .reusable = true}}, SHIFT(284),
  [1217] = {.entry = {.count = 1, .reusable = true}}, SHIFT(558),
  [1219] = {.entry = {.count = 1, .reusable = true}}, SHIFT(525),
  [1221] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_operator_annotation, 5),
  [1223] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74),
  [1225] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103),
  [1227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64),
  [1229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99),
  [1231] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62),
  [1233] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57),
  [1235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55),
  [1237] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_annotation, 6),
  [1239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49),
  [1241] = {.entry = {.count = 1, .reusable = true}}, SHIFT(253),
  [1243] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47),
  [1245] = {.entry = {.count = 1, .reusable = true}}, SHIFT(252),
  [1247] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33),
  [1249] = {.entry = {.count = 1, .reusable = true}}, SHIFT(251),
  [1251] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30),
  [1253] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_at_comment, 5),
  [1255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86),
  [1257] = {.entry = {.count = 1, .reusable = true}}, SHIFT(521),
  [1259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126),
  [1261] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8),
  [1263] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_generic_annotation, 7),
  [1265] = {.entry = {.count = 1, .reusable = true}}, SHIFT(676),
  [1267] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46),
  [1269] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_annotation, 8, .production_id = 11),
  [1271] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_operator_annotation, 8),
  [1273] = {.entry = {.count = 1, .reusable = true}}, SHIFT(520),
  [1275] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_generic_annotation, 9),
  [1277] = {.entry = {.count = 1, .reusable = true}}, SHIFT(522),
  [1279] = {.entry = {.count = 1, .reusable = true}}, SHIFT(415),
  [1281] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_qualifier_annotation, 1),
  [1283] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45),
};

#ifdef __cplusplus
extern "C" {
#endif
#ifdef _WIN32
#define extern __declspec(dllexport)
#endif

extern const TSLanguage *tree_sitter_luadoc(void) {
  static const TSLanguage language = {
    .version = LANGUAGE_VERSION,
    .symbol_count = SYMBOL_COUNT,
    .alias_count = ALIAS_COUNT,
    .token_count = TOKEN_COUNT,
    .external_token_count = EXTERNAL_TOKEN_COUNT,
    .state_count = STATE_COUNT,
    .large_state_count = LARGE_STATE_COUNT,
    .production_id_count = PRODUCTION_ID_COUNT,
    .field_count = FIELD_COUNT,
    .max_alias_sequence_length = MAX_ALIAS_SEQUENCE_LENGTH,
    .parse_table = &ts_parse_table[0][0],
    .small_parse_table = ts_small_parse_table,
    .small_parse_table_map = ts_small_parse_table_map,
    .parse_actions = ts_parse_actions,
    .symbol_names = ts_symbol_names,
    .field_names = ts_field_names,
    .field_map_slices = ts_field_map_slices,
    .field_map_entries = ts_field_map_entries,
    .symbol_metadata = ts_symbol_metadata,
    .public_symbol_map = ts_symbol_map,
    .alias_map = ts_non_terminal_alias_map,
    .alias_sequences = &ts_alias_sequences[0][0],
    .lex_modes = ts_lex_modes,
    .lex_fn = ts_lex,
    .primary_state_ids = ts_primary_state_ids,
  };
  return &language;
}
#ifdef __cplusplus
}
#endif
